Bluebird NPM: Bluebird JS obećanje s primjerom
Što je Bluebird JS?
Bluebird JS je potpuno opremljena biblioteka Promise za JavaSkripta. Najjača značajka Bluebirda je ta što vam omogućuje da "obećavate" druge module čvora kako biste ih koristili asinkrono. Promisify je koncept primijenjen na funkcije povratnog poziva. Ovaj se koncept koristi kako bi se osiguralo da svaka funkcija povratnog poziva koja je pozvana vraća neku vrijednost.
Pa ako a NodeJS modul sadrži funkciju povratnog poziva koja ne vraća vrijednost, a ako obećamo modul čvora, sve funkcije u tom specifičnom modulu čvora automatski će se modificirati kako bi se osiguralo da vraća vrijednost.
Dakle, možete koristiti BlueBird za izradu MongoDB modul radi asinkrono. Ovo samo dodaje novu razinu lakoće pri pisanju Node.js aplikacija.
Pogledat ćemo primjer kako koristiti bluebird modul.
Naš primjer prvo će uspostaviti vezu s "zbirkom zaposlenika" u bazi podataka "zaposlenika". Ako se uspostavi "tada" veza, tada će dobiti sve zapise u zbirci i prikazati ih na konzoli u skladu s tim.
Kako generirati obećanja pomoću Bluebird JS biblioteke
Evo primjera korak po korak generirati obećanja s bibliotekom Bluebird JS:
Korak 1) Instaliranje NPM modula
Za korištenje Bluebird-a unutar aplikacije Node potreban je modul Bluebird. Da biste instalirali Bluebird modul, pokrenite donju naredbu
npm instalirajte bluebird
Korak 2) Uključite Bluebird module
Sljedeći korak je uključiti bluebird modul u svoj kod i obećati cijeli MongoDB modul. Pod obećanjem mislimo da će bluebird osigurati da svaka metoda definirana u MongoDB knjižnica vraća obećanje.
Objašnjenje koda:-
- Naredba require koristi se za uključivanje biblioteke Bluebird.
- Koristite Bluebirdovu metodu .promisifyAll() za stvaranje asinkrone verzije svake metode MongoDB modul pruža. Ovo osigurava da svaka metoda MongoDB modul će raditi u pozadini i osigurati vraćanje obećanja za svaki poziv metode u MongoDB knjižnica.
Korak 3) Povežite se s bazom podataka
Posljednji korak je povezivanje s našom bazom podataka, dohvaćanje svih zapisa u našoj zbirci i njihovo prikazivanje u našem dnevniku konzole.
Objašnjenje koda:-
- Primijetit ćete da koristimo metodu "connectAsync" umjesto uobičajene metode povezivanja za povezivanje na baza podataka. Bluebird zapravo dodaje ključnu riječ Async svakoj metodi u MongoDB knjižnica za razlikovanje onih poziva koji vraćaju obećanja i onih koji ne. Stoga nema jamstva da će metode bez riječi Async vratiti vrijednost.
- Slično metodi connectAsync, sada koristimo metodu findAsync za vraćanje svih zapisa u kolekciji 'Zaposlenik' mongoDB-a.
- Konačno, ako findAsync vrati uspješno obećanje, tada definiramo blok koda za ponavljanje kroz svaki zapis u kolekciji i njihov prikaz u zapisniku konzole.
Ako su gornji koraci ispravno provedeni, svi dokumenti u zbirci zaposlenika bit će prikazani na konzoli kao što je prikazano u donjem izlazu.
Evo koda za vašu referencu:
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); }) });