Bluebird Promises-vejledning

Indholdsfortegnelse:

Anonim

Bluebird er et fuldt udstyret Promise-bibliotek til JavaScript. Det stærkeste ved Bluebird er, at det giver dig mulighed for at "promisificere" andre Node-moduler for at kunne bruge dem asynkront. Promisify er et koncept, der anvendes til tilbagekaldsfunktioner. Dette koncept bruges til at sikre, at enhver tilbagekaldsfunktion, der kaldes, returnerer en værdi.

Så hvis et Node JS-modul indeholder en tilbagekaldsfunktion, som ikke returnerer en værdi, og hvis vi lover nodemodulet, vil alle funktionerne i det specifikke nodemodul automatisk blive ændret for at sikre, at det returnerer en værdi.

Så du kan bruge BlueBird til at få MongoDB-modulet til at køre asynkront. Dette tilføjer bare et andet niveau af lethed, når du skriver Node.js-applikationer.

Vi vil se på et eksempel på, hvordan man bruger bluebird-modulet.

Vores eksempel opretter først en forbindelse til "Medarbejderindsamling" i "MedarbejderDB" -databasen. Hvis "derefter" -forbindelsen er etableret, får den alle poster i samlingen og viser dem i konsollen i overensstemmelse hermed.

Generer løfter med BlueBird-biblioteket

Trin 1) Installation af NPM-moduler

For at bruge Bluebird fra en node-applikation kræves Bluebird-modulet. For at installere Bluebird-modulet skal du køre kommandoen nedenfor

npm installer bluebird

Trin 2) Det næste trin er at inkludere bluebird-modulet i din kode og lovgive hele MongoDB-modulet. Ved promisify mener vi, at bluebird vil sikre, at hver eneste metode, der er defineret i MongoDB-biblioteket, returnerer et løfte.

Kode Forklaring: -

  1. Kommandoen kræver bruges til at inkludere Bluebird-biblioteket.
  2. Brug Bluebirds .promisifyAll () -metode til at oprette en asynkroniseringsversion af hver metode, som MongoDB-modulet giver. Dette sikrer, at hver metode i MongoDB-modulet kører i baggrunden og sikrer, at et løfte returneres for hvert metodeopkald i MongoDB-biblioteket.

Trin 3) Det sidste trin er at oprette forbindelse til vores database, hente alle poster i vores samling og vise dem i vores konsollog.

Kode Forklaring: -

  1. Du vil bemærke, at vi bruger "connectAsync" -metoden i stedet for den normale forbindelsesmetode til at oprette forbindelse til databasen. Bluebird tilføjer faktisk Async-nøgleordet til hver metode i MongoDB-biblioteket for at skelne mellem de opkald, der returnerer løfter og dem, der ikke gør det. Så der er ingen garanti for, at metoder uden Async-ordet returnerer en værdi.
  2. På samme måde som connectAsync-metoden bruger vi nu findAsync-metoden til at returnere alle poster i mongoDB 'Medarbejder'-samlingen.
  3. Endelig, hvis findAsync returnerer et vellykket løfte, definerer vi derefter en blok kode, der skal gentages gennem hver post i samlingen og viser dem i konsolloggen.

Hvis ovenstående trin udføres korrekt, vises alle dokumenterne i medarbejdersamlingen i konsollen som vist i output nedenfor.

Her er koden til din reference

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