Ich habe eine Funktion, die drei mongooose Befehle ausführt. 1. Findet eine Liste aller Partner. 2. Findet eine Liste aller Benutzer. 3. Aktualisieren Sie die Benutzertabelle.Die Mungo-Abfragen in Serie synchron machen
Problem: Mongoose tut es asynchron und es führt andere Befehle aus. Wie mache ich es in Serie 1,2,3 ausführen und dann andere Befehle ausführen. Unten habe ich ein Code-Snippet angehängt.
Das Problem damit ist, dass es die drei Mungo-Befehle aynchron ausführt und redirect() aufruft.
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');
});
Lesen Sie, wie Rückrufe zu verwenden. Oder sogar Versprechen. Mungo unterstützt das auch. https://docs.nodejitsu.com/articles/getting-started/control-flow/what-are-callbacks/ – Roshan
Verwenden Sie async.waterfall ([fn1, fn2, ...], cb): https: // www .npmjs.com/package/async-waterfall –