Výukový program pre sľuby Bluebird

Obsah:

Anonim

Bluebird je plne vybavená knižnica Promise pre JavaScript. Najsilnejšou vlastnosťou Bluebirdu je to, že vám umožňuje „promisifikovať“ ostatné uzlové moduly, aby ste ich mohli používať asynchrónne. Promisify je koncept aplikovaný na funkcie spätného volania. Tento koncept sa používa na zabezpečenie toho, aby každá volaná funkcia spätného volania vrátila určitú hodnotu.

Takže ak modul Node JS obsahuje funkciu spätného volania, ktorá nevracia hodnotu, a ak promisifikujeme modul uzla, všetky funkcie v tomto konkrétnom module uzla by sa automaticky upravili, aby sa zabezpečilo, že vráti hodnotu.

Takže môžete použiť BlueBird na to, aby sa modul MongoDB spustil asynchrónne. To len zvyšuje ďalšiu úroveň ľahkosti pri písaní aplikácií Node.js.

Pozrime sa na príklad, ako používať modul Bluebird.

Náš príklad najskôr vytvorí spojenie s „zbierkou zamestnancov“ v databáze „EmployeeDB“. Ak je nadviazané pripojenie „then“, získa všetky záznamy v zbierke a podľa toho ich zobrazí v konzole.

Generovanie sľubov pomocou knižnice BlueBird

Krok 1) Inštalácia modulov NPM

Aby ste mohli Bluebird používať v rámci aplikácie Uzol, je potrebný modul Bluebird. Ak chcete nainštalovať modul Bluebird, spustite nasledujúci príkaz

npm nainštalovať bluebird

Krok 2) Ďalším krokom je zahrnutie modulu bluebird do vášho kódu a propagácia celého modulu MongoDB. Promisify znamená, že bluebird zabezpečí, že každá metóda definovaná v knižnici MongoDB vráti prísľub.

Vysvetlenie kódu: -

  1. Príkaz require sa používa na zahrnutie knižnice Bluebird.
  2. Pomocou metódy .promisifyAll () Bluebird vytvorte asynchronnú verziu každej metódy, ktorú poskytuje modul MongoDB. To zaisťuje, že každá metóda modulu MongoDB bude bežať na pozadí a zabezpečí sa vrátenie prísľubu pre každé volanie metódy v knižnici MongoDB.

Krok 3) Posledným krokom je pripojenie k našej databáze, získanie všetkých záznamov z našej zbierky a ich zobrazenie v našom protokole konzoly.

Vysvetlenie kódu: -

  1. Všimnete si, že na pripojenie k databáze namiesto bežnej metódy pripojenia používame metódu „connectAsync“. Bluebird skutočne pridáva kľúčové slovo Async do každej metódy v knižnici MongoDB, aby rozlíšil tie hovory, ktoré vracajú sľuby, a tie, ktoré nie. Nie je teda zaručené, že metódy bez asynchronného slova vrátia hodnotu.
  2. Podobne ako v prípade metódy connectAsync teraz používame metódu findAsync na vrátenie všetkých záznamov v zbierke mongoDB „Employee“.
  3. Nakoniec, ak findAsync vráti úspešný prísľub, definujeme blok kódu na iteráciu cez každý záznam v kolekcii a ich zobrazenie v protokole konzoly.

Ak sa vyššie uvedené kroky vykonajú správne, všetky dokumenty v kolekcii Employee sa zobrazia v konzole, ako je znázornené na výstupe nižšie.

Tu je kód pre vašu referenciu

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