Bluebird NPM: Bluebird JS Promise cu exemplu

Ce este Bluebird JS?

Bluebird JS este o bibliotecă Promise cu funcții complete pentru JavaScenariul. Cea mai puternică caracteristică a Bluebird este că vă permite să „promiteți” alte module Node pentru a le utiliza asincron. Promisify este un concept aplicat funcțiilor de apel invers. Acest concept este folosit pentru a se asigura că fiecare funcție de apel invers care este numită returnează o anumită valoare.

Deci dacă a NodeJS modulul conține o funcție de apel invers care nu returnează o valoare și, dacă promitem modulul nod, toate funcțiile din acel modul nod specific vor fi modificate automat pentru a se asigura că returnează o valoare.

Deci, puteți folosi BlueBird pentru a face MongoDB modul rulează asincron. Acest lucru adaugă doar un alt nivel de ușurință atunci când scrieți aplicații Node.js.

Ne vom uita la un exemplu de utilizare a modulului bluebird.

Exemplul nostru va stabili mai întâi o conexiune la „Colecția angajaților” din baza de date „EmployeeDB”. Dacă se stabilește conexiunea „atunci”, atunci va primi toate înregistrările din colecție și le va afișa în consolă în consecință.

Cum să generați promisiuni cu Bluebird JS Library

Iată un exemplu pas cu pas genera promisiuni cu biblioteca Bluebird JS:

Pasul 1) Instalarea modulelor NPM

Pentru a utiliza Bluebird dintr-o aplicație Node, este necesar modulul Bluebird. Pentru a instala modulul Bluebird, executați comanda de mai jos

npm instalează bluebird

Pasul 2) Includeți module Bluebird

Următorul pas este să includeți modulul bluebird în codul dvs. și să promiteți întregul MongoDB modul. Prin promisify, înțelegem că Bluebird se va asigura că fiecare metodă definită în MongoDB biblioteca returnează o promisiune.

Generați promisiuni cu Bluebird JS Library

Explicația codului: -

  1. Comanda require este folosită pentru a include biblioteca Bluebird.
  2. Utilizați metoda .promisifyAll() de la Bluebird pentru a crea o versiune asincronă a fiecărei metode MongoDB modulul oferă. Acest lucru asigură că fiecare metodă a MongoDB modulul va rula în fundal și se va asigura că este returnată o promisiune pentru fiecare apel de metodă din MongoDB bibliotecă.

Pasul 3) Conectați-vă la baza de date

Pasul final este să ne conectăm la baza noastră de date, să preluăm toate înregistrările din colecția noastră și să le afișam în jurnalul consolei noastre.

Generați promisiuni cu Bluebird JS Library

Explicația codului: -

  1. Veți observa că folosim metoda „connectAsync” în loc de metoda normală de conectare pentru conectarea la Baza de date. Bluebird adaugă de fapt cuvântul cheie Async la fiecare metodă din MongoDB bibliotecă pentru a distinge apelurile care returnează promisiuni și cele care nu. Deci nu există nicio garanție că metodele fără cuvântul Async vor returna o valoare.
  2. Similar cu metoda connectAsync, acum folosim metoda findAsync pentru a returna toate înregistrările din colecția „Angajați” mongoDB.
  3. În cele din urmă, dacă findAsync returnează o promisiune de succes, definim apoi un bloc de cod pentru a itera fiecare înregistrare din colecție și a le afișa în jurnalul consolei.

Dacă pașii de mai sus sunt efectuati corect, toate documentele din colecția Angajați vor fi afișate în consolă, așa cum se arată în rezultatul de mai jos.

Generați promisiuni cu Bluebird JS Library

Iată codul pentru referință:

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