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