Bluebird NPM: Bluebird JS Promise cu exemplu

Ce este Bluebird JS?

Bluebird JS este o bibliotecฤƒ Promise cu funcศ›ii complete pentru JavaScenariul. Cea mai puternicฤƒ caracteristicฤƒ a Bluebird este cฤƒ vฤƒ permite sฤƒ โ€žpromiteศ›iโ€ alte module Node pentru a le utiliza asincron. Promisify este un concept aplicat funcศ›iilor de apel invers. Acest concept este folosit pentru a se asigura cฤƒ fiecare funcศ›ie de apel invers care este numitฤƒ returneazฤƒ o anumitฤƒ valoare.

Deci dacฤƒ a NodeJS modulul conศ›ine o funcศ›ie de apel invers care nu returneazฤƒ o valoare ศ™i, dacฤƒ promitem modulul nod, toate funcศ›iile din acel modul nod specific vor fi modificate automat pentru a se asigura cฤƒ returneazฤƒ o valoare.

Deci, puteศ›i folosi BlueBird pentru a face MongoDB modul ruleazฤƒ asincron. Acest lucru adaugฤƒ doar un alt nivel de uศ™urinศ›ฤƒ atunci cรขnd scrieศ›i aplicaศ›ii Node.js.

Ne vom uita la un exemplu de utilizare a modulului bluebird.

Exemplul nostru va stabili mai รฎntรขi o conexiune la โ€žColecศ›ia angajaศ›ilorโ€ din baza de date โ€žEmployeeDBโ€. Dacฤƒ se stabileศ™te conexiunea โ€žatunciโ€, atunci va primi toate รฎnregistrฤƒrile din colecศ›ie ศ™i le va afiศ™a รฎn consolฤƒ รฎn consecinศ›ฤƒ.

Cum sฤƒ generaศ›i promisiuni cu Bluebird JS Library

Iatฤƒ un exemplu pas cu pas genera promisiuni cu biblioteca Bluebird JS:

Pasul 1) Instalarea modulelor NPM

Pentru a utiliza Bluebird dintr-o aplicaศ›ie Node, este necesar modulul Bluebird. Pentru a instala modulul Bluebird, executaศ›i comanda de mai jos

npm instaleazฤƒ bluebird

Pasul 2) Includeศ›i module Bluebird

Urmฤƒtorul pas este sฤƒ includeศ›i modulul bluebird รฎn codul dvs. ศ™i sฤƒ promiteศ›i รฎntregul MongoDB modul. Prin promisify, รฎnศ›elegem cฤƒ Bluebird se va asigura cฤƒ fiecare metodฤƒ definitฤƒ รฎn MongoDB biblioteca returneazฤƒ o promisiune.

Generaศ›i promisiuni cu Bluebird JS Library

Code Explicaลฃie:-

  1. Comanda require este folositฤƒ pentru a include biblioteca Bluebird.
  2. Utilizaศ›i metoda .promisifyAll() de la Bluebird pentru a crea o versiune asincronฤƒ a fiecฤƒrei metode MongoDB modulul oferฤƒ. Acest lucru asigurฤƒ cฤƒ fiecare metodฤƒ a MongoDB modulul va rula รฎn fundal ศ™i se va asigura cฤƒ este returnatฤƒ o promisiune pentru fiecare apel de metodฤƒ din MongoDB bibliotecฤƒ.

Pasul 3) Conectaศ›i-vฤƒ la baza de date

Pasul final este sฤƒ ne conectฤƒm la baza noastrฤƒ de date, sฤƒ preluฤƒm toate รฎnregistrฤƒrile din colecศ›ia noastrฤƒ ศ™i sฤƒ le afiศ™am รฎn jurnalul consolei noastre.

Generaศ›i promisiuni cu Bluebird JS Library

Code Explicaลฃie:-

  1. Veศ›i observa cฤƒ folosim metoda โ€žconnectAsyncโ€ รฎn loc de metoda normalฤƒ de conectare pentru conectarea la Baza de date. Bluebird adaugฤƒ de fapt cuvรขntul cheie Async la fiecare metodฤƒ din MongoDB bibliotecฤƒ pentru a distinge apelurile care returneazฤƒ promisiuni ศ™i cele care nu. Deci nu existฤƒ nicio garanศ›ie cฤƒ metodele fฤƒrฤƒ cuvรขntul Async vor returna o valoare.
  2. Similar cu metoda connectAsync, acum folosim metoda findAsync pentru a returna toate รฎnregistrฤƒrile din colecศ›ia โ€žAngajaศ›iโ€ mongoDB.
  3. รŽn cele din urmฤƒ, dacฤƒ findAsync returneazฤƒ o promisiune de succes, definim apoi un bloc de cod pentru a itera fiecare รฎnregistrare din colecศ›ie ศ™i a le afiศ™a รฎn jurnalul consolei.

Dacฤƒ paศ™ii de mai sus sunt efectuati corect, toate documentele din colecศ›ia Angajaศ›i vor fi afiศ™ate รฎn consolฤƒ, aศ™a cum se aratฤƒ รฎn rezultatul de mai jos.

Generaศ›i promisiuni cu Bluebird JS Library

Iatฤƒ codul pentru referinศ›ฤƒ:

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

Rezumaศ›i aceastฤƒ postare cu: