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.
Explicația codului: -
- Comanda require este folosită pentru a include biblioteca Bluebird.
- 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.
Explicația codului: -
- 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.
- Similar cu metoda connectAsync, acum folosim metoda findAsync pentru a returna toate înregistrările din colecția „Angajați” mongoDB.
- Î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.
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); }) });