如何使用express删除CRUD帖子

时间:2016-09-08 17:28:19

标签: express

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

<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!");
    });
}

这会导致“重定向太多”错误。当我的应用程序崩溃时,帖子不会被删除。

1 个答案:

答案 0 :(得分:0)

你可以使用这样的东西

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