Bluebird NPM: Bluebird JS Promise s příkladem

Co je Bluebird JS?

Bluebird JS je plně vybavená knihovna Promise JavaSkript. Nejsilnější vlastností Bluebirdu je, že vám umožňuje „slíbit“ další moduly Node, abyste je mohli 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á je volána, vrací nějakou hodnotu.

Takže pokud NodeJS modul obsahuje funkci zpětného volání, která nevrací hodnotu, a pokud slíbíme modul uzlu, všechny funkce v tomto konkrétním modulu uzlu by se automaticky upravily, aby bylo zajištěno, že vrátí hodnotu.

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

Podíváme se na příklad použití modulu bluebird.

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

Jak generovat sliby s Bluebird JS Library

Zde je příklad krok za krokem vytvářet sliby s knihovnou Bluebird JS:

Krok 1) Instalace modulů NPM

Chcete-li používat Bluebird z aplikace Node, je vyžadován modul Bluebird. Chcete-li nainstalovat modul Bluebird, spusťte níže uvedený příkaz

npm nainstalovat bluebird

Krok 2) Zahrňte moduly Bluebird

Dalším krokem je zahrnout modul bluebird do vašeho kódu a slíbit celý MongoDB modul. Promisify znamená, že Bluebird zajistí, aby každá metoda definovaná v MongoDB knihovna vrací slib.

Generujte sliby pomocí knihovny Bluebird JS

Vysvětlení kódu:-

  1. Příkaz require se používá k zahrnutí knihovny Bluebird.
  2. Použijte metodu .promisifyAll() společnosti Bluebird k vytvoření asynchronní verze každé metody MongoDB modul poskytuje. Tím je zajištěno, že každá metoda MongoDB modul poběží na pozadí a zajistí, že se vrátí příslib pro každé volání metody v MongoDB knihovna.

Krok 3) Připojte se k databázi

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

Generujte sliby pomocí knihovny Bluebird JS

Vysvětlení kódu:-

  1. Všimnete si, že používáme metodu „connectAsync“ namísto běžné metody připojení pro připojení k databáze. Bluebird ve skutečnosti přidává klíčové slovo Async ke každé metodě v MongoDB knihovna, aby rozlišila ty hovory, které vracejí sliby, a ty, které ne. Neexistuje tedy žádná záruka, že metody bez slova Async vrátí hodnotu.
  2. Podobně jako u metody 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, pak definujeme blok kódu, který bude iterován každým záznamem v kolekci a zobrazí se v protokolu konzoly.

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

Generujte sliby pomocí knihovny Bluebird JS

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