在sailsjs blueprint api中,默认情况下,action route响应所有四种类型的请求- GET、POST、PUT、DELETE。我只想拒绝路由的某些类型的请求,而允许其他类型的请求通过。例如,我可能希望只接受对/foo/bar处的bar操作的POST请求,而拒绝对该路由的GET、PUT和DELETE请求。
尽管可以使用策略来限制控制器操作。
FooController:{ bar: false,},
但是,在这里,它拒绝所有4种类型的请求,或者基于相同的条件允许所有4种类型的请求。相反,我想要的是总是拒绝4种类型的请求中的3种,同时总是允许第四种类型通过。
在不禁用Blueprint并在/config/routes.js中手动输入路由的情况下,是否可以做到这一点?如果是这样的话,是怎么做的?
发布于 2016-05-24 15:27:05
这是一个用于您的路由文件(/config/routes.js)的文件,而不是您所标识的策略文件。
'POST /page/link': YourControllerName.ActionName,
'GET /': YourHomePageController.ActionName,
'PUT /login': UserController.login前两个是显示语法的示例。最后一个示例显示了这在控制登录表单提交的典型设置中的效果。如果您希望通过POST和PUT允许多次,那么只需添加具有相同controller.action的另一行,但更改方法即可。
有关更多示例以及其他可使用的语法,请查看此处:
http://sailsjs.org/documentation/concepts/routes
一旦你有了你想要的路线,你将需要关闭蓝图方法,如果你留在上面,它将覆盖这些路线,并仍然允许通过。
转到您的config/Bluprint.js文件并更改以下各项:
actions: false
rest: false
shortcuts: false同样,有关这些功能以及如何使用它们的更多信息,可以在此处找到:
http://sailsjs.org/documentation/reference/configuration/sails-config-blueprints
https://stackoverflow.com/questions/37361883
复制相似问题