我看到所有控制器方法都可以免费用于GET和POST。如何确保只允许某些方法的POST?
答案 0 :(得分:14)
如果您使用action blueprints自动将网址路由到自定义控制器操作,则这些操作将响应GET
,PUT
,POST
,DELETE
默认情况下为PATCH
个方法。如果您宁愿控制允许哪些方法,您可以选择以下几种方法:
在config/routes.js文件中使用自定义路由禁用某些方法。例如,如果您在 UserController.js 中有foo
操作,但您不想允许GET
请求,则可以添加以下自定义路由:
"GET /user/foo": {response: 'forbidden'}
自动将其路由到"禁止"响应(与在控制器中执行res.forbidden()
相同)
在操作本身内测试req.method
,并提前返回您不想处理的方法:
if (req.method.toUpperCase() == 'GET') {return res.forbidden();}
通过在config/blueprints.js文件中将actions
设置为false
来停用操作路线。然后,您必须在config/routes.js文件中手动设置所有路线。