Javascript Mongoose Delete和Express app.Delete有什么区别

Javascript Mongoose Delete和Express app.Delete有什么区别,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我正在学习NodeJS并将MongoDB用于数据库(mongoose进行交互)。目前我正在做的课程只是使用mongoose方法“删除”和“更新”,并使用Express发出“发布”请求。即: app.post("/delete", function(req, res){ //do something Item.findByIdAndRemove(item, function(err){ }) }) 但如果您查看Express basic routing Docs,他们建议您使用: a

我正在学习NodeJS并将MongoDB用于数据库(mongoose进行交互)。目前我正在做的课程只是使用mongoose方法“删除”和“更新”,并使用Express发出“发布”请求。即:

app.post("/delete", function(req, res){
  //do something
  Item.findByIdAndRemove(item, function(err){
  })
})
但如果您查看Express basic routing Docs,他们建议您使用:

app.delete('/item', function (req, res) {
  res.send('Got a DELETE request at /item')
})

我知道一切都应该是RESTful的,使用POST请求发出删除请求可能会导致问题,但在这种情况下,它们是否都完成了相同的任务?很抱歉,如果这个问题是新手或很难理解,这只是我在今天阅读一篇关于REST的文章时注意到的。POST用于向数据库添加数据,而DELETE用于从数据库中删除项目。它允许更清晰的代码,在postman中很有用,因为你可以有相同的URL,但它是不同的请求,因此你可以有不同的响应。

更好的做法是使用
app.delete
,而不是
app.post
,因为它反映了端点的工作性质。在以下代码中更容易看到您要删除的项目:

app.delete("/item", (req, res) => { /* Delete item */ });
但是POST请求用于将新项目发布到存储中,因此不太清楚。唯一的另一种常规方法是在URI中使用方法名的GET请求(请参阅下面的RESTfulAPI实践,以了解糟糕的RESTfulAPI实践)


这就是我要找的谢谢。好的视频谢谢@ColtonVanBastelaere,总是很乐意帮忙。如果我的答案解决了你的问题,请将其标记为已接受。
app.get("/delete-item", (req, res) => { /* Delete item */ });