Sails.js将端点方法与http方法匹配(GET,POST)

bra*_*ipt 3 sails.js

我正在处理Sails.js上的文档,并根据他们的"入门"指南创建了一个基本的dev实例:

$ sudo npm -g install sails
$ sails new testProject
$ sails generate users
$ sails lift
Run Code Online (Sandbox Code Playgroud)

这四个简单的命令将安装平台,创建项目,并按users设计创建模型.

在我的浏览器中,使用默认安装端口,我现在可以按预期访问http://localhost:1337/users和接收空的JSON数组[].

现在,如果我想创建一个新用户,REST最佳实践要求我应该使用该POST方法.POST确实有效,开箱即用,Sails 允许您执行GET http://localhost:1337/users/create生成新的用户对象.

通过阅读他们的文档,我无法确定一种限制允许哪些HTTP方法执行各种任务的方法.这是在文档中吗?或者有人可以解释在Sails堆栈中哪些(应该)可以管理?

bre*_*hin 5

Sails.js为您提供了这些快捷方式,只允许您使用GET方法进行操作.如果需要,您可以使用文档中提到的配置禁用生产中的配置:

默认情况下,Sails将为控制器中的每个操作创建蓝图操作路由,以便GET请求 /:controllerIdentity/:nameOfAction将触发操作.如果上一节中的示例控制器保存为 api/controllers/SayController.js,则默认情况下,只要应用程序被解除/say/hi,/say/bye路径就会可用.如果控制器保存在子文件夹下/we,那么路由将是 /we/say/hi/we/say/bye.有关Sails的自动路由绑定的更多信息,请参阅蓝图文档.

除了默认路由,Sails还允许您使用config/routes.js文件手动将路由绑定到控制器操作.您可能希望使用显式路由的一些示例如下:

  • 当您想要使用单独的操作来处理相同的路径路径时,基于HTTP方法(也就是动词).上述动作蓝图路由绑定了给定动作的路径的所有请求方法,包括GET,POST,PUT,DELETE等.