Comment utiliser la mangouste Promesse - mongo
Quelqu'un peut-il me donner un exemple sur la façon d'utiliser une Promesse avec la mangouste. Voici ce que j'ai, mais sa ne fonctionne pas comme prévu:
app.use(function (req, res, next) {
res.local('myStuff', myLib.process(req.path, something));
console.log(res.local('myStuff'));
next();
});
puis dans myLib, je voudrais avoir quelque chose comme ceci:
exports.process = function ( r, callback ) {
var promise = new mongoose.Promise;
if(callback) promise.addBack(callback);
Content.find( {route : r }, function (err, docs) {
promise.resolve.bind(promise)(err, docs);
});
return promise;
};
À un certain point je m'attends à ce que mes données soient présents, mais comment puis-je accéder à, ou recevoir au il?
- Pertinentes de la lu - mongoosejs.com/docs/queries.html
Vous devez vous connecter pour publier un commentaire.
Dans la version actuelle de la Mangouste, le
exec()
méthode renvoie une Promesse, de sorte que vous pouvez effectuer les opérations suivantes:Ensuite, lorsque vous souhaitez obtenir les données, vous devez vous rendre asynchrone:
Pour plus d'informations sur les promesses, il y a un merveilleux article que j'ai lu récemment:
http://spion.github.io/posts/why-i-am-switching-to-promises.html
find()
comme une promesse, sans avoir besoin d'appelerexec
. Si vous pouviez juste faire:Content.find({route: r}).then(function(content) { } );
var a = myLib.process(req.path)
Mangouste utilise déjà des promesses, lorsque vous appelez
exec()
sur une requête.find()
retourne déjà une promesse. Pas besoin d'appelerexec()
.Mangouste 4.0 Release Notes
Avec [email protected] vous pouvez utiliser toutes les promesses que vous souhaitez
Un autre exemple avec les polyfills destinés à la prise globale.Promesse
Ainsi, vous pouvez le faire plus tard
Ou
P. S. Mangouste 5.0
Je crois que vous êtes à la recherche pour
Sur cette page:http://mongoosejs.com/docs/promises.html
Utiliser le bluebird Promesse de la bibliothèque comme ceci:
C'est thenable, tels que: