如何配置Sails Controller以仅使用"Post"方法

Ale*_*tos 6 sails.js

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

sgr*_*454 14

如果您使用的行动蓝图,以自动将网址,定制控制器动作,那么这些行为作出回应GET,PUT,POST,DELETEPATCH方法的默认.如果您更愿意控制允许哪些方法,您可以选择以下几种方法:

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

    "GET /user/foo": {response: 'forbidden'}
    
    Run Code Online (Sandbox Code Playgroud)

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

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

    if (req.method.toUpperCase() == 'GET') {return res.forbidden();}
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过在config/blueprints.js文件中设置actions为禁用操作路由.然后,您必须在config/routes.js文件中手动设置所有路由.false