如何使用express删除CRUD帖子



这是文章在视图中呈现的方式。删除帖子的链接也在这里

<ul class="posts" id="posts">
  <% for(var i = posts.length - 1; i >= 0; i--) { %>
    <li class="post">
      <span><a href="/myPage/<%=posts[i]['_id']%>"><%= posts[i].userCreate %></a></span>
      <!-- If current user created the post, show delete button -->
      <% if (user.username == posts[i].username) { %>
      <span><a href="/deletePost/<%= posts[i] %>">Delete</a></span>
      <% } %>
    </li>
  <% } %>
</ul>
这是我的路线。删除路由导致错误。处理步骤我认为只有get路由对href链接有效。
// Delete post.
router.get('/deletePost/:id', function(req, res) {
    post.deletePost(req.params.id);
    res.redirect('crud');
});

这是我用来删除帖子的函数。

exports.deletePost = function(data) {
    postsCollection.findAndModify({data}, [], {remove:true}, function(err, object) {
        if(err)
            throw err;
        console.log("Deleted post!");
    });
}

这会导致'too many redirects'错误。当我的应用程序崩溃时,该帖子不会在结束时被删除。

你可以这样写

router.delete('/delete/:id', function(req,res){
  myCollection.findByIdAndRemove(req.params.id, function(err){
    if(err){res.send(err);}
    res.json({messaje:"Done"});
  });
});

最新更新