1

在sailsjs blueprint api中,action route默认响应所有四种类型的请求——GET、POST、PUT、DELETE。我想只拒绝某些类型的路由请求,同时允许其他请求通过。例如,我可能希望只接受对 /foo/bar 的 bar 操作的 POST 请求,而拒绝对该路由的 GET、PUT 和 DELETE 请求。

尽管策略可用于限制控制器操作。

FooController: { bar: false, },

但是,这里根据相同的条件拒绝所有 4 种请求或允许所有 4 种请求。相反,我想要的是始终拒绝 4 种请求中的 3 种,同时始终允许第 4 种请求通过。

这可以在不使用禁用蓝图并手动将路由输入 /config/routes.js 的情况下完成吗?如果有怎么办?

4

1 回答 1

1

这是一个用于您的路由文件 (/config/routes.js) 的文件,而不是您确定的策略文件。

'POST /page/link': YourControllerName.ActionName,
'GET /': YourHomePageController.ActionName,
'PUT /login': UserController.login

前 2 个是显示语法的示例。最后一个示例显示了在控制登录表单提交的典型设置中的外观。如果您希望通过例如 POST 和 PUT 允许多个,那么只需添加具有相同 controller.action 的另一行,但更改方法。

有关更多示例以及可以使用的其他语法,请查看此处:

http://sailsjs.org/documentation/concepts/routes

一旦你有了你想要的路线,你就需要关闭蓝图方法,如果你离开,它将覆盖这些路线并仍然允许访问。

转到您的 config/blueprint.js 文件并更改以下项目:

actions: false
rest: false
shortcuts: false

再次,可以在此处找到有关这些功能以及如何使用它们的更多信息:

http://sailsjs.org/documentation/reference/configuration/sails-config-blueprints

于 2016-05-24T07:27:04.843 回答