NodeJS 什么是Connect methodOverride()?

w6lpcovy  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(205)

在Express生成的代码中:

...
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('my secret cat'));
...

**express.methodOverride()**这个方法我不太熟悉。我读了doc Connect文档here,但还是错过了全貌。

我的问题是:
在什么情况下我们需要使用express.methodOverride()来覆盖一个方法(GET、POST、PUT和DELETE)?
我找到了一个相关的答案here,但我的后续问题是:
如果没有
express.methodOverride()
,则无法在Express中使用app.put()、app.delete()、app.get()、app.post()。是这样吗?

b0zn9rqh

b0zn9rqh1#

methodOverride是一个功能可见性,用于使用只能使用GET或POST方法的标准表单提交提交的浏览器表单。此外,Adobe Flex似乎也限制了它可以发送的HTTP方法。请参阅this answer了解更多详细信息。如果您正在使用XmlHttpRequest( AJAX )与服务器交互,那么现在的浏览器可以很好地执行所有REST方法。
要点是始终使用全套REST方法(app.putapp.del等)编写快速代码。如果您正在进行<form>标签提交,那么也使用methodOverride,一切都会很好。

相关问题