MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwenden Sie Bluebird für Mungo, got .bind ist keine Funktion

Das Problem, das Sie haben, ist, dass Mongoose-Abfragen keine vollwertigen Versprechungen zurückgeben – indem Sie http:// direkt zitieren. mongoosejs.com/docs/promises.html (v4.7.6)

// A query is not a fully-fledged promise, but it does have a `.then()`.
query.then(function (doc) {
  // use doc
});

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();
assert.ok(promise instanceof require('mpromise'));

Mit anderen Worten, das then Funktion ist Syntaxzucker und kein promise weshalb das bind und andere Promise-Funktionen funktionieren nicht.

Damit es funktioniert, verpacken Sie es entweder in ein vollständiges Versprechen oder verwenden die exec Funktion wie in der Dokumentation vorgeschlagen