为什么我的表单仍然请求POST,即使隐藏输入DELETE?

时间:2014-03-06 05:19:21

标签: javascript node.js mongoose

我正在构建我的第一个Node.js应用程序,我正在尝试删除模型。下面是show.ejs,我试图放置一个按钮来发送删除请求&删除模型的相应控制器方法。我收到一个错误,请求仍然作为发布请求发送,我不知道为什么。有什么想法吗?

show.ejs

<html>
  <h1><%= movie.title %></h1>
  <img id="poster" src="<%= movie.poster %>">

  <p>Release Date: <%= movie.releaseDate %></p>
  <p>Critics Score: <%= movie.criticsScore %></p>
  <p>Audience Score: <%= movie.audienceScore %></p>

  <p><a href="/movies">Back</a></p>

  <form action="/movies/<%= movie._id %>" method="post">
    <input type="hidden" name="_method" value="delete">
    <input data-confirm='Are you sure?' value="Delete Movie" type="submit">
  </form>
</html>

movies.js

app.delete('/movies/:id', function (req, res) {
  Movie.findById(req.params.id, function (err, movie) {
    Movie.remove({ title: movie.title })

    res.redirect('/movies');
  });
});

1 个答案:

答案 0 :(得分:0)

我已将app.use(express.methodOverride());添加到 config.js ,问题已解决。