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.
Code Fรถrklaring:-
- Kommandot require anvรคnds fรถr att inkludera Bluebird-biblioteket.
- 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.
Code Fรถrklaring:-
- 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.
- I likhet med connectAsync-metoden anvรคnder vi nu findAsync-metoden fรถr att returnera alla poster i mongoDB 'Employee'-samlingen.
- 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.
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);
})
});



