无法删除mongodb条目

时间:2019-01-16 23:20:53

标签: javascript node.js mongodb express mongoose

我正在使用node.js / express / mongoose / mongodb创建一个博客应用。我正在创建一条删除路线,因此可以从管理面板中删除帖子。我也使用method-override删除。每当我按下创建的按钮删除帖子时,都会遇到错误消息,提示无法删除博客/(此处的博客名称)。不确定为什么它不起作用,任何帮助将不胜感激。

这是删除路线代码

//DELETE BLOG ROUTE
app.delete("/blogs/:slug", function(req, res){
  //DESTROY BLOG
  Blog.findOneAndRemove({ slug: req.params.slug}, function(err){
      if(err){
          res.redirect("/admin");
      } else {
          res.redirect("/admin");
      }
  })
});

这是我要在管理面板上删除的按钮

<div class="d-flex justify-content-between">
                                    <a href="/blogs/<%= blog.slug %>" class="btn btn-primary">View Post</a>
                                    <a href="/blogs/<%= blog.slug%>/edit" class="btn btn-success">Edit Post</a>
                                    <form action="/blogs/<%= blog.slug %>?_method=DELETE" method="POST">
                                        <button class="btn btn-danger"><i class="far fa-trash-alt"></i> Post</button>
                                    </form>
                                </div>

2 个答案:

答案 0 :(得分:2)

使用blog._slug代替blog.slug. 因为,猫鼬将"id"提取为collections._id

答案 1 :(得分:0)

在“删除路由”中,您将slug作为参数传递,而不是使用 blog.slug

仅使用子弹。示例:

<div class="d-flex justify-content-between">
  <a href="/blogs/<%=slug %>" class="btn btn-primary">View Post</a>
  <a href="/blogs/<%=slug%>/edit" class="btn btn-success">Edit Post</a>
  <form action="/blogs/<%=slug %>?_method=DELETE" method="POST">
    <button class="btn btn-danger"><i class="far fa-trash-alt"></i> Post</button>
  </form>
</div>