Bluebird NPM: Bluebird JS Promise med exempel

Vad är Bluebird JS?

Bluebird JS är ett fullfjädrat Promise-bibliotek för JavaManus. Den starkaste egenskapen hos Bluebird är att den låter dig "lova" andra Node-moduler för att använda dem asynkront. Promisify är ett koncept som tillämpas på callback-funktioner. Detta koncept används för att säkerställa att varje callback-funktion som anropas returnerar något värde.

Så om en NodeJS modulen innehåller en återuppringningsfunktion som inte returnerar ett värde, och om vi lovar nodmodulen kommer alla funktioner i den specifika nodmodulen automatiskt att modifieras för att säkerställa att den returnerar ett värde.

Så du kan använda BlueBird för att göra MongoDB modulen körs asynkront. Detta ger bara ytterligare en nivå av lätthet när du skriver Node.js-applikationer.

Vi kommer att titta på ett exempel på hur man använder bluebird-modulen.

Vårt exempel kommer först att upprätta en anslutning till "Employee collection" i "EmployeeDB"-databasen. Om "då"-anslutning upprättas, kommer den att hämta alla poster i samlingen och visa dem i konsolen i enlighet med detta.

Hur man skapar löften med Bluebird JS Library

Här är steg för steg exempel skapa löften med Bluebird JS-bibliotek:

Steg 1) Installera NPM-modulerna

För att använda Bluebird från en Node-applikation krävs Bluebird-modulen. För att installera Bluebird-modulen, kör kommandot nedan

npm installera bluebird

Steg 2) Inkludera Bluebird-moduler

Nästa steg är att inkludera bluebird-modulen i din kod och lova hela MongoDB modul. Med promisify menar vi att bluebird kommer att säkerställa att varje metod som definieras i MongoDB biblioteket ger ett löfte.

Generera löften med Bluebird JS Library

Kodförklaring:-

  1. Kommandot require används för att inkludera Bluebird-biblioteket.
  2. Använd Bluebirds .promisifyAll()-metod för att skapa en asynkronversion av varje metod MongoDB modul ger. Detta säkerställer att varje metod för MongoDB modulen körs i bakgrunden och säkerställer att ett löfte returneras för varje metodanrop i MongoDB bibliotek.

Steg 3) Anslut till databasen

Det sista steget är att ansluta till vår databas, hämta alla poster i vår samling och visa dem i vår konsollogg.

Generera löften med Bluebird JS Library

Kodförklaring:-

  1. Du kommer att märka att vi använder metoden "connectAsync" istället för den vanliga anslutningsmetoden för att ansluta till databas. Bluebird lägger faktiskt till nyckelordet Async till varje metod i MongoDB biblioteket för att skilja de samtal som ger löften och de som inte gör det. Så det finns ingen garanti för att metoder utan Async-ordet kommer att returnera ett värde.
  2. I likhet med connectAsync-metoden använder vi nu findAsync-metoden för att returnera alla poster i mongoDB 'Employee'-samlingen.
  3. Slutligen, om findAsync returnerar ett framgångsrikt löfte, definierar vi ett kodblock för att iterera genom varje post i samlingen och visa dem i konsolloggen.

Om ovanstående steg utförs på rätt sätt, kommer alla dokument i anställningssamlingen att visas i konsolen som visas i utgången nedan.

Generera löften med Bluebird JS Library

Här är koden som referens:

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