Tutorial promesse di Bluebird

Sommario:

Anonim

Bluebird è una libreria Promise completa di funzionalità per JavaScript. La caratteristica più forte di Bluebird è che ti permette di "promettere" altri moduli Node per usarli in modo asincrono. Promisify è un concetto applicato alle funzioni di callback. Questo concetto viene utilizzato per garantire che ogni funzione di callback chiamata restituisca un valore.

Quindi, se un modulo Node JS contiene una funzione di callback che non restituisce un valore, e se promettiamo il modulo del nodo, tutte le funzioni in quel modulo nodo specifico verrebbero automaticamente modificate per garantire che restituisca un valore.

Quindi puoi usare BlueBird per far funzionare il modulo MongoDB in modo asincrono. Questo aggiunge solo un altro livello di facilità durante la scrittura di applicazioni Node.js.

Vedremo un esempio di come utilizzare il modulo bluebird.

Il nostro esempio stabilirà prima una connessione alla "raccolta Employee" nel database "EmployeeDB". Se viene stabilita la connessione "allora", riceverà tutti i record nella raccolta e li visualizzerà di conseguenza nella console.

Generare promesse con la libreria BlueBird

Passaggio 1) Installazione dei moduli NPM

Per utilizzare Bluebird dall'interno di un'applicazione Node, è richiesto il modulo Bluebird. Per installare il modulo Bluebird, esegui il comando seguente

npm installa bluebird

Passaggio 2) Il passaggio successivo consiste nell'includere il modulo bluebird nel codice e nella promessa dell'intero modulo MongoDB. Per promessa, intendiamo che bluebird garantirà che ogni metodo definito nella libreria MongoDB restituisca una promessa.

Spiegazione del codice: -

  1. Il comando require viene utilizzato per includere la libreria Bluebird.
  2. Usa il metodo .promisifyAll () di Bluebird per creare una versione asincrona di ogni metodo fornito dal modulo MongoDB. Ciò garantisce che ogni metodo del modulo MongoDB venga eseguito in background e assicuri che venga restituita una promessa per ogni chiamata al metodo nella libreria MongoDB.

Passaggio 3) Il passaggio finale è connettersi al nostro database, recuperare tutti i record nella nostra raccolta e visualizzarli nel log della nostra console.

Spiegazione del codice: -

  1. Noterai che stiamo usando il metodo "connectAsync" invece del normale metodo di connessione per la connessione al database. Bluebird aggiunge effettivamente la parola chiave Async a ciascun metodo nella libreria MongoDB per distinguere quelle chiamate che restituiscono promesse e quelle che non lo fanno. Quindi non vi è alcuna garanzia che i metodi senza la parola Async restituiranno un valore.
  2. Analogamente al metodo connectAsync, ora stiamo utilizzando il metodo findAsync per restituire tutti i record nella raccolta "Employee" di mongoDB.
  3. Infine, se findAsync restituisce una promessa di successo, definiamo un blocco di codice per iterare attraverso ogni record nella raccolta e visualizzarli nel log della console.

Se i passaggi precedenti vengono eseguiti correttamente, tutti i documenti nella raccolta Employee verranno visualizzati nella console come mostrato nell'output di seguito.

Ecco il codice per il tuo riferimento

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