Node.js 快速放置和删除方法不起作用
我正在使用express进行我的项目。自从项目开始,我就没有遵循创建真实api的规则。现在我正试图用PUT方法更新我的字段,express正在发送404 messagecannot GET…,我的DELETE方法也是如此。 下面是更新我的查看页面代码:Node.js 快速放置和删除方法不起作用,node.js,express,Node.js,Express,我正在使用express进行我的项目。自从项目开始,我就没有遵循创建真实api的规则。现在我正试图用PUT方法更新我的字段,express正在发送404 messagecannot GET…,我的DELETE方法也是如此。 下面是更新我的查看页面代码: <form action="/edited/<%= resul[0].name %>" method="PUT"> <label class="label">Name</label>
<form action="/edited/<%= resul[0].name %>" method="PUT">
<label class="label">Name</label>
<input class="input" type="text" name="name" " value="<%= resul[0].name %>">
<label class="label">description</label>
<input class="input" type="text" name="desc" value="<%= resul[0].desc %>">
<button type="submit">DONE</button>
</form>
当我尝试更新某些内容时,uri会发生如下变化:
http://localhost:3000/edited/test?name=changedtest&desc=something
错误是showsn:无法获取/编辑?name=changedtest&desc=something
删除也会发生同样的情况。
令人惊讶的是,当我使用GET方法实现删除时,它起了作用。
发生什么事?如何解决这个问题?
对于特定的任务,我们必须使用精确指定的http方法吗?就像总是删除来删除和…谢谢。正如其他人提到的,HTML表单不支持PUT方法。如果您想坚持使用RESTful路由,那么有一个很棒的中间件叫做方法覆盖,它正是这样做的 您所要做的就是通过告诉中间件在查询中查找哪个字符串来设置中间件:
app.use(methodOverride("_method"));
然后,在表单上,执行以下操作:
<form action="/edited/<%=item._id%>?_method=PUT" method="POST" >
这将允许您按原样离开PUT路线 您必须发送PUT请求。即使用curl:curl-X PUThttp://localhost:3000/edited/test?name=changedtest&desc=somethingSo 查看页面怎么样?我真的试过邮递员。读这个:啊哈,那么,通过POST或GET删除或更新在技术上是否正确?如果不是,解决办法是什么?谢谢,您的错误是无法使用html表单执行PUT。阅读以下有关方法的内容:
<form action="/edited/<%=item._id%>?_method=PUT" method="POST" >