Bluebird NPM: Bluebird JS-Versprechen mit Beispiel

Was ist Bluebird JS?

Bluebird JS ist eine voll funktionsfähige Promise-Bibliothek für JavaSkript. Die stärkste Funktion von Bluebird besteht darin, dass Sie andere Node-Module „promisifizieren“ 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.

Also wenn a KnotenJS Das Modul enthält eine Rückruffunktion, die keinen Wert zurückgibt. 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 zu erstellen MongoDB Modul wird asynchron ausgeführt. Dies vereinfacht das Schreiben von Node.js-Anwendungen noch weiter.

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.

So generieren Sie Versprechen mit der Bluebird JS Library

Hier ist das Schritt-für-Schritt-Beispiel dazu Versprechen generieren mit Bluebird JS-Bibliothek:

Schritt 1) ​​Installation der NPM-Module

Um Bluebird innerhalb einer Node-Anwendung zu verwenden, ist das Bluebird-Modul erforderlich. Führen Sie den folgenden Befehl aus, um das Bluebird-Modul zu installieren

npm install bluebird

Schritt 2) Bluebird-Module einbinden

Der nächste Schritt besteht darin, das Bluebird-Modul in Ihren Code einzubinden und das Ganze zu versprechen MongoDB Modul. Mit versprechen meinen wir, dass Bluebird sicherstellt, dass jede einzelne in der definierte Methode erfüllt ist MongoDB Die Bibliothek gibt ein Versprechen zurück.

Generieren Sie Versprechen mit der Bluebird JS Library

Code-Erklärung:-

  1. Der Befehl require wird verwendet, um die Bluebird-Bibliothek einzubinden.
  2. Verwenden Sie die Methode .promisifyAll() von Bluebird, um eine asynchrone Version jeder Methode zu erstellen. MongoDB Modul bietet. Dadurch wird sichergestellt, dass jede Methode der MongoDB Das Modul wird im Hintergrund ausgeführt und stellt sicher, dass für jeden Methodenaufruf in der ein Versprechen zurückgegeben wird MongoDB Bibliothek.

Schritt 3) ​​Stellen Sie eine Verbindung zur Datenbank her

Der letzte Schritt besteht darin, eine Verbindung zu unserer Datenbank herzustellen, alle Datensätze in unserer Sammlung abzurufen und sie in unserem Konsolenprotokoll anzuzeigen.

Generieren Sie Versprechen mit der Bluebird JS Library

Code-Erklärung:-

  1. Sie werden feststellen, dass wir die Methode „connectAsync“ anstelle der normalen Verbindungsmethode für die Verbindung mit dem Datenbank. Bluebird fügt das Schlüsselwort Async tatsächlich zu jeder Methode in der MongoDB Bibliothek, um zwischen Aufrufen zu unterscheiden, die Versprechen zurückgeben, und solchen, die dies nicht tun. Es gibt also keine Garantie, dass Methoden ohne das Wort „Async“ einen Wert zurückgeben.
  2. Ähnlich wie bei der Methode connectAsync verwenden wir jetzt die Methode findAsync, um alle Datensätze in der mongoDB-Sammlung „Employee“ zurückzugeben.
  3. Wenn findAsync schließlich ein erfolgreiches Versprechen zurückgibt, definieren wir einen Codeblock, um jeden Datensatz in der Sammlung zu durchlaufen und sie im Konsolenprotokoll anzuzeigen.

Wenn die oben genannten Schritte ordnungsgemäß ausgeführt werden, werden alle Dokumente in der Mitarbeitersammlung in der Konsole angezeigt, wie in der folgenden Ausgabe dargestellt.

Generieren Sie Versprechen mit der Bluebird JS Library

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);
        })
    });