Vodič za obećanja za Bluebird

Sadržaj:

Anonim

Bluebird je potpuno opremljena knjižnica Promise za JavaScript. Najjača značajka Bluebird-a je što vam omogućuje da "persifificirate" ostale Node module kako biste ih asinkrono koristili. Promisify je koncept koji se primjenjuje na funkcije povratnog poziva. Ovaj se koncept koristi kako bi se osiguralo da svaka pozvana funkcija povratnog poziva vrati neku vrijednost.

Dakle, ako Node JS modul sadrži funkciju povratnog poziva koja ne vraća vrijednost, i ako Promisificiramo nod modul, sve funkcije u tom specifičnom čvornom modulu automatski će se izmijeniti kako bi se osiguralo da vraća vrijednost.

Dakle, možete koristiti BlueBird da bi MongoDB modul radio asinkrono. To samo dodaje novu razinu lakoće prilikom pisanja Node.js aplikacija.

Pogledat ćemo primjer kako se koristi modul bluebird.

Naš primjer najprije će uspostaviti vezu s "zbirkom zaposlenika" u bazi podataka "EmployeeDB". Ako se uspostavi veza "tada", dobit će sve zapise u zbirci i u skladu s tim prikazati ih u konzoli.

Generiranje obećanja s knjižnicom BlueBird

Korak 1) Instaliranje NPM modula

Da biste koristili Bluebird iz aplikacije Node, potreban je Bluebird modul. Da biste instalirali modul Bluebird, pokrenite donju naredbu

npm instalirati bluebird

Korak 2) Sljedeći je korak uključiti modul bluebird u svoj kôd i promisificirati cijeli MongoDB modul. Pod promisify podrazumijevamo da će bluebird osigurati da svaka metoda definirana u biblioteci MongoDB vrati obećanje.

Objašnjenje koda: -

  1. Naredba require koristi se za uključivanje knjižnice Bluebird.
  2. Koristite Bluebirdovu metodu .promisifyAll () za stvaranje asinkrene verzije svake metode koju pruža MongoDB modul. To osigurava da će se svaka metoda modula MongoDB izvoditi u pozadini i osigurava vraćanje obećanja za svaki poziv metode u biblioteci MongoDB.

Korak 3) Posljednji korak je povezivanje s našom bazom podataka, preuzimanje svih zapisa iz naše zbirke i prikaz u našem dnevniku konzole.

Objašnjenje koda: -

  1. Primijetit ćete da za povezivanje s bazom podataka koristimo metodu "connectAsync" umjesto uobičajene metode povezivanja. Bluebird zapravo dodaje ključnu riječ Async svakoj metodi u biblioteci MongoDB kako bi razlikovao one pozive koji vraćaju obećanja i one koji to ne čine. Dakle, ne postoji jamstvo da će metode bez riječi Async vratiti vrijednost.
  2. Slično metodi connectAsync, sada koristimo metodu findAsync za vraćanje svih zapisa u zbirci mongoDB 'Zaposlenik'.
  3. Konačno, ako findAsync vrati uspješno obećanje, tada definiramo blok koda koji će prelaziti kroz svaki zapis u zbirci i prikazivati ​​ih u dnevniku konzole.

Ako su gornji koraci pravilno izvedeni, svi dokumenti iz zbirke zaposlenika prikazat će se u konzoli kao što je prikazano u donjem izlazu.

Evo koda za vašu referencu

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