如何配置Sails控制器仅使用' Post'方法

时间:2014-08-09 11:52:17

标签: sails.js

我看到所有控制器方法都可以免费用于GET和POST。如何确保只允许某些方法的POST?

1 个答案:

答案 0 :(得分:14)

如果您使用action blueprints自动将网址路由到自定义控制器操作,则这些操作将响应GETPUTPOSTDELETE默认情况下为PATCH个方法。如果您宁愿控制允许哪些方法,您可以选择以下几种方法:

  1. config/routes.js文件中使用自定义路由禁用某些方法。例如,如果您在 UserController.js 中有foo操作,但您不想允许GET请求,则可以添加以下自定义路由:

    "GET /user/foo": {response: 'forbidden'}
    

    自动将其路由到"禁止"响应(与在控制器中执行res.forbidden()相同)

  2. 在操作本身内测试req.method,并提前返回您不想处理的方法:

    if (req.method.toUpperCase() == 'GET') {return res.forbidden();}
    
  3. 通过在config/blueprints.js文件中将actions设置为false来停用操作路线。然后,您必须在config/routes.js文件中手动设置所有路线。