Bluebird ist eine voll funktionsfähige Promise-Bibliothek für JavaScript. Das Stärkste an Bluebird ist, dass Sie andere Node-Module "versprechen" können, um sie asynchron zu verwenden. Promisify ist ein Konzept, das auf Rückruffunktionen angewendet wird. Dieses Konzept wird verwendet, um sicherzustellen, dass jede aufgerufene Rückruffunktion einen Wert zurückgibt.
Wenn also ein Node JS-Modul eine Rückruffunktion enthält, die keinen Wert zurückgibt, und wenn wir das Knotenmodul versprechen, werden alle Funktionen in diesem bestimmten Knotenmodul automatisch geändert, um sicherzustellen, dass es einen Wert zurückgibt.
Sie können also BlueBird verwenden, um das MongoDB-Modul asynchron auszuführen. Dies macht das Schreiben von Node.js-Anwendungen noch einfacher.
Wir werden uns ein Beispiel für die Verwendung des Bluebird-Moduls ansehen.
In unserem Beispiel wird zunächst eine Verbindung zur "Employee Collection" in der Datenbank "EmployeeDB" hergestellt. Wenn eine "dann" -Verbindung hergestellt wird, werden alle Datensätze in der Sammlung abgerufen und entsprechend in der Konsole angezeigt.
Versprechen generieren mit der BlueBird-Bibliothek
Schritt 1) Installieren der NPM-Module
Um Bluebird in einer Node-Anwendung verwenden zu können, ist das Bluebird-Modul erforderlich. Führen Sie den folgenden Befehl aus, um das Bluebird-Modul zu installieren
npm installiere bluebird
Schritt 2) Der nächste Schritt besteht darin, das Bluebird-Modul in Ihren Code aufzunehmen und das gesamte MongoDB-Modul zu versprechen. Mit versprechen meinen wir, dass Bluebird sicherstellt, dass jede in der MongoDB-Bibliothek definierte Methode ein Versprechen zurückgibt.
Code Erläuterung: -
- Der Befehl require wird verwendet, um die Bluebird-Bibliothek einzuschließen.
- Verwenden Sie die .promisifyAll () -Methode von Bluebird, um eine asynchrone Version aller vom MongoDB-Modul bereitgestellten Methoden zu erstellen. Dadurch wird sichergestellt, dass jede Methode des MongoDB-Moduls im Hintergrund ausgeführt wird und für jeden Methodenaufruf in der MongoDB-Bibliothek ein Versprechen zurückgegeben wird.
Schritt 3) Der letzte Schritt besteht darin, eine Verbindung zu unserer Datenbank herzustellen, alle Datensätze in unserer Sammlung abzurufen und sie in unserem Konsolenprotokoll anzuzeigen.
Code Erläuterung: -
- Sie werden feststellen, dass wir die "connectAsync" -Methode anstelle der normalen Verbindungsmethode für die Verbindung zur Datenbank verwenden. Bluebird fügt tatsächlich das Async-Schlüsselwort zu jeder Methode in der MongoDB-Bibliothek hinzu, um diejenigen Aufrufe zu unterscheiden, die Versprechen zurückgeben, und diejenigen, die dies nicht tun. Es gibt also keine Garantie dafür, dass Methoden ohne das Async-Wort einen Wert zurückgeben.
- Ähnlich wie bei der connectAsync-Methode verwenden wir jetzt die findAsync-Methode, um alle Datensätze in der mongoDB-Auflistung 'Employee' zurückzugeben.
- Wenn findAsync ein erfolgreiches Versprechen zurückgibt, definieren wir einen Codeblock, der jeden Datensatz in der Sammlung durchläuft und im Konsolenprotokoll anzeigt.
Wenn die oben genannten Schritte ordnungsgemäß ausgeführt werden, werden alle Dokumente in der Employee-Sammlung in der Konsole angezeigt, wie in der folgenden Ausgabe gezeigt.
Hier ist der Code als Referenz
var Promise = require('bluebird');var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;var url = 'mongodb://localhost/EmployeeDB';mongoClient.connectAsync('mongodb://localhost/EmployeeDB').then(function(db) {return db.collection('Employee').findAsync({})}).then(function(cursor) {cursor.each(function(err, doc) {console.log(doc);})});