Javascript 正在运行回调函数,但不是主函数
我在一个路由中有这段代码,当我运行调试器时,Javascript 正在运行回调函数,但不是主函数,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我在一个路由中有这段代码,当我运行调试器时,thedoc2.save()函数正在运行,然后套接字发出,但我从未看到运行设置新mongoose值的$set。有什么原因吗?此外,在调试器中,bidTime和bidamunitum等值等于上次运行此路由时设置的先前值 User.findByIdAndUpdate(req.session.passport.user, { $set: { bidDetails: { bidAmount
thedoc2.save()代码>函数正在运行,然后套接字发出,但我从未看到运行设置新mongoose值的$set
。有什么原因吗?此外,在调试器中,bidTime
和bidamunitum
等值等于上次运行此路由时设置的先前值
User.findByIdAndUpdate(req.session.passport.user, {
$set: {
bidDetails: {
bidAmount: req.body.bidAmount,
bidLocation: 'Market Square',
bidTime: moment().format()
}
}
}, function(err, theDocu2) {
if (err) {
return console.log(err);
}
theDocu2.save();
io.to(theDocu2.email).emit('activeBid', {
activeBid: req.body.bidAmount,
bidTime: theDocu2.bidDetails.bidTime
});
});
你“认为”你在做什么.findByIdAndUpdate()
用于“更新”文档。那么,为什么您认为需要在以后调用.save()
?用一个或另一个。您还缺少{:“new”:true}
选项,否则.findbyidanddupdate()
将在修改前返回“原始”文档。如果这里发生任何事情,净效果是一个取消另一个,因为带有“原始”数据的.save()
将覆盖对.findbyiandupdate()
的修改,并且$set
@marainesparnisari方法是异步的。但还有更大的问题。正如我所指出的,缺少.save()
的更新结果在这里是一个没有意义的问题。还想知道req.session.passport.user
是否不应该是req.session.passport.user.\u id