【发布时间】:2018-04-10 08:49:18
【问题描述】:
我有一个执行三个 mongooose 命令的函数。 1. 查找所有合作伙伴的列表。 2. 查找所有用户的列表。 3. 更新用户表。
问题:Mongoose 异步执行它并执行其他命令。如何让它在系列 1、2、3 中执行,然后执行其他命令。下面,我附上了代码sn-p。
问题在于它异步运行三个 mongoose 命令并调用 redirect()。
router.post('/login', function(req, res, next) {
Partner.findOne({'groupName': req.session.user.groupnName}), function(error, data) {
var partnerInfo = data;
if(partnerInfo && req.session.user) {
req.session.user.accountID = partnerInfo.accountID;
req.session.user.iamRole = partnerInfo.iamRole;
}
};
var id;
User.find({'username': req.session.user.username}, function(err, data) {
if(data) {
id = data._id;
}
});
User.findByIdAndUpdate(id, req.session.user, function(error) {});
return res.redirect('/home');
});
【问题讨论】:
-
阅读如何使用回调。甚至是承诺。猫鼬也支持这一点。 docs.nodejitsu.com/articles/getting-started/control-flow/…
-
使用 async.waterfall([fn1, fn2, ...], cb): npmjs.com/package/async-waterfall
标签: node.js mongodb express asynchronous mongoose