Javascript .save()函数在使用.markModified()后仍不工作

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({

我正在参加coursera的全堆栈开发课程。将REST API与express和mongo集成时,我的post函数中的.save()不起作用。我已经做了几天了

我尝试使用.markModified(),即使这样也不起作用。最后,我在这里附加了.post()的片段。只有此post功能不起作用

.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}
选项解决了这个问题。