Javascript .save()函数在使用.markModified()后仍不工作
我正在参加coursera的全堆栈开发课程。将REST API与express和mongo集成时,我的post函数中的.save()不起作用。我已经做了几天了 我尝试使用.markModified(),即使这样也不起作用。最后,我在这里附加了.post()的片段。只有此post功能不起作用Javascript .save()函数在使用.markModified()后仍不工作,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在参加coursera的全堆栈开发课程。将REST API与express和mongo集成时,我的post函数中的.save()不起作用。我已经做了几天了 我尝试使用.markModified(),即使这样也不起作用。最后,我在这里附加了.post()的片段。只有此post功能不起作用 .post((请求、恢复、下一步)=>{ 碟形物。findById(要求参数碟形物) .然后((碟)=>{ if(dish!=null){ 点评推送(要求正文); 控制台.日志(盘); //update({
.post((请求、恢复、下一步)=>{
碟形物。findById(要求参数碟形物)
.然后((碟)=>{
if(dish!=null){
点评推送(要求正文);
控制台.日志(盘);
//update({u id:req.params.dishId},{$push:{comments:req.body}})
dish.markModified(‘注释’);
保存
.然后((碟)=>{
res.statusCode=200;
res.setHeader('content-type','application/json');
res.json(dish);
},(err)=>next(err));
}
否则{
err=新错误(“Dish”+req.params.dishId+“未找到”)
err.status=404;
返回下一个(错误);
}
},(err)=>next(err))
.catch((err)=>next(err));
})
在模式定义中加入{usePushEach:true}
可以解决这个问题。您可以在下面为dish.save()
函数添加控制台.log(err)
调用下一个(err)
。比如dish.save()。然后((dish)=>{//handling success},(err)=>{console.log(err);next(err);})代码>非常感谢@Vishnu的关注。我通过在模式中添加{usePushEach:true}
选项解决了这个问题。