使用 PUT 在 Node.js 中删除

Using PUT to delete in Node.js

node.js中,我可以使用

app.route('/').get(getObjectList).post(postAddObject).put(putDeleteObject);

但我不知道如何在html中触发...put(putDeleteObject)

难道我们在html中仅限于postget?我什么时候可以使用 put?它仅适用于通过 jQuery 等方式发出的 REST 请求吗?

你平时是怎么删除对象的?我认为通过 post 请求比 get 请求更安全,但是像我在代码示例中所做的那样将它链接起来会很棒,但是,如果 html无法区分post和put。我看过一些他们使用

的例子
<form method="post">
  <input type='hidden' name='_method' value='put'>
  <button type='submit'>Delete</button>
</form>

但这对我不起作用。

编辑

我打算使用 DELETE 而不是 PUT,但问题仍然存在。我不知道如何更改我的 html 以支持 DELETE 请求。

您没有将其包含在问题中,但看起来您使用的是 Express。在这种情况下,您可以使用:

var methodOverride = require('method-override')
app.use(methodOverride('_method'))

然后您就可以使用 HTML 像这样的表格:

<form method="POST" action="/your/resource?_method=DELETE">
  <button type="submit">Delete</button>
</form>

在你的路由处理程序中:

app.route('/')
  .get(getObjectList)
  .post(postAddObject)
  .put(putObject)
  .delete(deleteObject);

如果你想使用:

<form method="POST">
  <input type="hidden" name="_method" value="delete">
  <button type="submit">Delete</button>
</form>

然后它有点复杂但仍然可能 - 有关详细信息,请参阅: