Výukový program pro Bluebird Promises

Obsah:

Anonim

Bluebird je plně vybavená knihovna Promise pro JavaScript. Nejsilnější vlastností Bluebirdu je, že umožňuje „promisifikovat“ ostatní moduly uzlů, aby je bylo možné používat asynchronně. Promisify je koncept aplikovaný na funkce zpětného volání. Tento koncept se používá k zajištění toho, že každá funkce zpětného volání, která se nazývá, vrací určitou hodnotu.

Takže pokud modul Node JS obsahuje funkci zpětného volání, která nevrací hodnotu, a pokud promisifikujeme modul uzlu, všechny funkce v tomto konkrétním modulu uzlu by byly automaticky upraveny, aby se zajistilo, že vrátí hodnotu.

Takže můžete použít BlueBird k tomu, aby modul MongoDB běžel asynchronně. To jen přidává další úroveň snadnosti při psaní aplikací Node.js.

Podíváme se na příklad, jak používat modul Bluebird.

Náš příklad nejprve naváže připojení k „kolekci zaměstnanců“ v databázi „EmployeeDB“. Pokud je navázáno připojení „then“, získá všechny záznamy v kolekci a odpovídajícím způsobem je zobrazí v konzole.

Generování slibů s knihovnou BlueBird

Krok 1) Instalace modulů NPM

Abyste mohli Bluebird používat v rámci aplikace Node, je vyžadován modul Bluebird. Chcete-li nainstalovat modul Bluebird, spusťte následující příkaz

npm install bluebird

Krok 2) Dalším krokem je zahrnutí modulu bluebird do vašeho kódu a promise celého modulu MongoDB. Promisify máme na mysli, že Bluebird zajistí, že každá metoda definovaná v knihovně MongoDB vrátí slib.

Vysvětlení kódu: -

  1. Příkaz require se používá k zahrnutí knihovny Bluebird.
  2. Pomocí metody Bluebird .promisifyAll () vytvořte asynchronní verzi všech metod, které modul MongoDB poskytuje. Tím je zajištěno, že každá metoda modulu MongoDB bude spuštěna na pozadí a zajistí se vrácení slibu pro každé volání metody v knihovně MongoDB.

Krok 3) Posledním krokem je připojení k naší databázi, načtení všech záznamů v naší kolekci a jejich zobrazení v našem protokolu konzoly.

Vysvětlení kódu: -

  1. Všimnete si, že pro připojení k databázi namísto běžné metody připojení používáme metodu „connectAsync“. Bluebird ve skutečnosti přidává klíčové slovo Async ke každé metodě v knihovně MongoDB, aby rozlišil ta volání, která slibují návrat, a ta, která ne. Neexistuje tedy žádná záruka, že metody bez asynchronního slova vrátí hodnotu.
  2. Podobně jako metoda connectAsync nyní používáme metodu findAsync k vrácení všech záznamů v kolekci mongoDB 'Employee'.
  3. Nakonec, pokud findAsync vrátí úspěšný slib, definujeme blok kódu, který bude iterovat každý záznam v kolekci a zobrazovat je v protokolu konzoly.

Pokud jsou výše uvedené kroky provedeny správně, všechny dokumenty v kolekci Zaměstnanec se zobrazí v konzole, jak je znázorněno na výstupu níže.

Zde je kód pro vaši referenci

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