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.
Code Explicaลฃie:-
- 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.
Code Explicaลฃie:-
- 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);
})
});



