Bluebird NPM: Bluebird JS lubadus koos näitega
Mis on Bluebird JS?
Bluebird JS on täisfunktsionaalne Promise teek JavaSkript. Bluebirdi tugevaim omadus on see, et see võimaldab teil "lubada" teisi Node mooduleid, et neid asünkroonselt kasutada. Promisify on kontseptsioon, mida rakendatakse tagasihelistamise funktsioonidele. Seda kontseptsiooni kasutatakse tagamaks, et iga tagasihelistamisfunktsioon, millele helistatakse, tagastab mingi väärtuse.
Nii et kui a NodeJS moodul sisaldab tagasihelistamisfunktsiooni, mis ei tagasta väärtust, ja kui me lubame sõlmemooduli, muudetakse kõiki selle konkreetse sõlme mooduli funktsioone automaatselt, et tagada väärtuse tagastamine.
Nii saate selle tegemiseks kasutada BlueBirdi MongoDB moodul töötab asünkroonselt. See lihtsalt lisab Node.js-i rakenduste kirjutamisel veel ühe lihtsuse taseme.
Vaatame sinilinnu mooduli kasutamise näidet.
Meie näide loob esmalt ühenduse "Töötajate kogu" andmebaasis "EmployeeDB". Kui luuakse ühendus "siis", hangib see kõik kogus olevad kirjed ja kuvab need vastavalt konsoolis.
Kuidas Bluebird JS raamatukoguga lubadusi luua
Siin on samm-sammult näide lubadusi genereerida Bluebird JS raamatukoguga:
1. samm) NPM-moodulite installimine
Bluebirdi kasutamiseks sõlmerakenduses on vaja Bluebirdi moodulit. Bluebirdi mooduli installimiseks käivitage allolev käsk
npm installi bluebird
Samm 2) Kaasake Bluebirdi moodulid
Järgmine samm on lisada oma koodi Bluebirdi moodul ja lubada kogu MongoDB moodul. Promisify all peame silmas seda, et bluebird tagab, et kõik meetodites määratletud meetodid MongoDB raamatukogu annab lubaduse.
Koodi selgitus: -
- Nõude käsku kasutatakse Bluebirdi teegi kaasamiseks.
- Kasutage Bluebirdi meetodit .promisifyAll(), et luua igast meetodist asünkroonitud versioon MongoDB moodul pakub. See tagab, et iga meetod MongoDB moodul töötab taustal ja tagab lubaduse tagastamise iga meetodi kutse puhul MongoDB raamatukogu.
Samm 3) Looge ühendus andmebaasiga
Viimane samm on meie andmebaasiga ühenduse loomine, kõigi meie kogus olevate kirjete toomine ja nende kuvamine meie konsooli logis.
Koodi selgitus: -
- Märkate, et me kasutame ühenduse loomiseks tavapärase ühendusmeetodi asemel meetodit "connectAsync". andmebaas. Bluebird lisab tegelikult igale meetodile Async märksõna MongoDB raamatukogu, et eristada kõnesid, mis annavad lubadusi, ja neid, mis mitte. Seega pole mingit garantiid, et ilma asünkroonita meetodid väärtuse tagastavad.
- Sarnaselt connectAsynci meetodile kasutame nüüd meetodit findAsync, et tagastada kõik mongoDB kogus „Töötaja” olevad kirjed.
- Lõpuks, kui findAsync tagastab eduka lubaduse, siis määratleme koodiploki, et itereerida kogu iga kirjet ja kuvada need konsooli logis.
Kui ülaltoodud toimingud on õigesti tehtud, kuvatakse kõik töötaja kogus olevad dokumendid konsoolis, nagu on näidatud allolevas väljundis.
Siin on teie viitekood:
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); }) });