我正在使用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>
答案 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>