Express 4中方法覆盖中间件的作用是什么?

Tra*_*Guy 19 node.js express

由于RouterExpress 4中的对象支持:

var router = require('express').Router();
router.delete('/route', function(req, res) {
    //...
};

router.put('/route', function(req, res) {
    //...
};
Run Code Online (Sandbox Code Playgroud)

方法覆盖中间件有什么用?我可以安全地将它从我app.js和它中删除package.json吗?

msc*_*dex 20

methodOverride()中间件是从只有原生支持简单的动词,如GET和POST客户端的请求.因此,在这些情况下,您可以指定一个特殊的查询字段(例如隐藏的表单字段),指示要使用的真实动词而不是最初发送的动词.这样你的后端.put()/ .delete()/ .patch()/等.路线不必改变,仍然有效,您可以接受来自各种客户的请求.

  • GET和POST是唯一受支持的表单动词,即使在HTML5中(现在也是如此).见[这里](http://stackoverflow.com/a/166501). (12认同)
  • 就 HTML 表单中允许的 HTTP 动词而言,2019 年或 2020 年 HTML5 没有任何变化。 (2认同)