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.
Code Forklaring:-
- Require-kommandoen brukes til รฅ inkludere Bluebird-biblioteket.
- 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.
Code Forklaring:-
- 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.
- I likhet med connectAsync-metoden bruker vi nรฅ findAsync-metoden for รฅ returnere alle postene i mongoDB 'Employee'-samlingen.
- 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.
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);
})
});



