我正在按照教程进行操作,但是它似乎已经过时了,看起来好像已经改变了,我有一个编辑页面,该页面正在尝试编辑mongodb中的现有数据,但是它只是不想工作。
这是本教程中的家伙所做的:
app.put("/blogs/:id",function(req,res){
Blog.findByIdAndUpdate(req.params.id,req.body.blog,function(err,updatedBlog){
if (err) {
res.redirect("/blogs");
}else {
res.redirect("/blogs/" + req.params.id);
}
});
});
从那时起,我尝试使用findOneAndUpdate(),但我似乎也无法正常工作,我尝试将.id替换为._id,如下所示:
app.put("/blogs/:id",function(req,res){
Blog.findByIdAndUpdate(req.params._id,req.body,{new:true},function(err,updatedBlog){
if(err){
console.log(err);
}else{
console.log("Blog updated");
res.redirect("/blogs/"+req.params._id);
}
});
});
它要转到else语句,因为我得到了console.log,但它仍然不更新任何内容
答案 0 :(得分:0)
我认为您的更新查询格式不正确。
您的查询应类似于this
Blog.findByIdAndUpdate(req.params.id, {$set: {blog: req.body.blog}}, function(err, updatedData){
if(err){console.log(err);}
else{ console.log('blog updated');
// do other stuff.....
}
})
答案 1 :(得分:0)
在参数req.body的末尾,您忘记添加博客了,因此应该是
Blog.findByIdAndUpdate(req.params.id,req.body.blog,function(error, updatedBlog)