在Express应用程序中无法从mongodb中删除

时间:2017-08-31 00:00:46

标签: rest express

我正在构建一个非常简单的应用程序来使用Express和Mongodb练习RESTful路由。

我的问题是,每当我尝试运行DELETE路由时,都会收到以下错误:Cannot DELETE /wordlist/59a7194293de6e03630401f6

这是删除路线:

app.delete("wordlist/:id", function(req, res){
  Word.findByIdAndRemove(req.params.id, function(err){
    if(err){
      res.redirect("/");
    } else {
      res.redirect("/wordlist");
    }
  });
});

这是我用来运行使用ejs的删除路由的表单:

<form action="/wordlist/<%= word._id %>?_method=DELETE" method="POST">
  <button>
    Delete this word
  </button>
</form>

另外,我已经安装并使用了方法覆盖。

知道我做错了吗?

2 个答案:

答案 0 :(得分:2)

问题在于您指定的路线:

app.delete("wordlist/:id"...

你错过了一个领先的正斜杠。 将其更改为

app.delete("/wordlist/:id"... 它应该工作。

答案 1 :(得分:0)

您需要更改表单以使用删除动词

<form action="/wordlist/<%= word._id %>" method="DELETE">
  <button>
    Delete this word
  </button>
</form>