Bluebird NPM: Bluebird JS Promise med eksempel

Hva er Bluebird JS?

Bluebird JS er et fullt utstyrt Promise-bibliotek for JavaManus. Den sterkeste egenskapen til Bluebird er at den lar deg "love" andre Node-moduler for å bruke dem asynkront. Promisify er et konsept som brukes på tilbakeringingsfunksjoner. Dette konseptet brukes for å sikre at hver tilbakeringingsfunksjon som kalles returnerer en verdi.

Så hvis en NodeJS modulen inneholder en tilbakeringingsfunksjon som ikke returnerer en verdi, og hvis vi lover nodemodulen, vil alle funksjonene i den spesifikke nodemodulen automatisk bli modifisert for å sikre at den returnerer en verdi.

Så du kan bruke BlueBird til å lage MongoDB modul kjøres asynkront. Dette gir bare enda et nivå av brukervennlighet når du skriver Node.js-applikasjoner.

Vi skal se på et eksempel på hvordan du bruker bluebird-modulen.

Vårt eksempel vil først etablere en tilkobling til "Employee collection" i "EmployeeDB"-databasen. Hvis "da"-tilkoblingen er etablert, vil den hente alle postene i samlingen og vise dem i konsollen tilsvarende.

Hvordan generere løfter med Bluebird JS Library

Her er et trinn for trinn eksempel generere løfter med Bluebird JS-bibliotek:

Trinn 1) Installere NPM-modulene

For å bruke Bluebird fra en Node-applikasjon, kreves Bluebird-modulen. For å installere Bluebird-modulen, kjør kommandoen nedenfor

npm installer bluebird

Trinn 2) Inkluder Bluebird-moduler

Det neste trinnet er å inkludere bluebird-modulen i koden din og love hele MongoDB modul. Med promisify mener vi at bluebird vil sikre at hver eneste metode som er definert i MongoDB biblioteket gir et løfte.

Generer løfter med Bluebird JS Library

Kodeforklaring:-

  1. Require-kommandoen brukes til å inkludere Bluebird-biblioteket.
  2. Bruk Bluebirds .promisifyAll()-metode for å lage en asynkronisert versjon av hver metode MongoDB modul gir. Dette sikrer at hver metode for MongoDB modulen vil kjøre i bakgrunnen og sørge for at et løfte returneres for hvert metodekall i MongoDB bibliotek.

Trinn 3) Koble til databasen

Det siste trinnet er å koble til databasen vår, hente alle postene i samlingen vår og vise dem i konsollloggen vår.

Generer løfter med Bluebird JS Library

Kodeforklaring:-

  1. Du vil legge merke til at vi bruker "connectAsync" -metoden i stedet for den vanlige tilkoblingsmetoden for å koble til database. Bluebird legger faktisk til Async-nøkkelordet til hver metode i MongoDB biblioteket for å skille de samtalene som gir løfter og de som ikke gjør det. Så det er ingen garanti for at metoder uten Async-ordet vil returnere en verdi.
  2. I likhet med connectAsync-metoden bruker vi nå findAsync-metoden for å returnere alle postene i mongoDB 'Employee'-samlingen.
  3. Til slutt, hvis findAsync returnerer et vellykket løfte, definerer vi en kodeblokk for å iterere gjennom hver post i samlingen og vise dem i konsollloggen.

Hvis trinnene ovenfor utføres riktig, vil alle dokumentene i ansattsamlingen vises i konsollen som vist i utdataene nedenfor.

Generer løfter med Bluebird JS Library

Her er koden som referanse:

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