Bluebird on JavaScripti jaoks mõeldud täisfunktsionaalne Promise teek. Bluebirdi kõige tugevam omadus on see, et see võimaldab teil "lubada" teisi Node mooduleid, et neid asünkroonselt kasutada. Promisify on tagasihelistamisfunktsioonide mõiste. Seda kontseptsiooni kasutatakse tagamaks, et iga kutsutud tagasihelistamisfunktsioon tagastaks mingi väärtuse.
Nii et kui sõlme JS moodul sisaldab tagasihelistamisfunktsiooni, mis väärtust ei tagasta, ja kui me lubame sõlme moodulit, muudetakse kõiki selle konkreetse sõlme mooduli funktsioone automaatselt, tagamaks, et see tagastaks väärtuse.
Nii et saate MongoDB mooduli asünkroonselt töötama panna BlueBirdi abil. See lisab Node.js-rakenduste kirjutamisel lihtsalt veel ühe lihtsuse.
Vaatame näidet, kuidas bluebird moodulit kasutada.
Meie näide loob kõigepealt ühenduse andmebaasis "EmployeeDB" "Töötajate kogu". Kui ühendus "siis" on loodud, saab see kõik kogu kirjed ja kuvab need vastavalt konsoolis.
Lubaduste genereerimine BlueBirdi teegiga
Samm 1) NPM-moodulite installimine
Bluebirdi kasutamiseks Node'i rakenduses on vajalik Bluebirdi moodul. Mooduli Bluebird installimiseks käivitage järgmine käsk
npm installige sinilind
Samm 2) Järgmine samm on lisada sinilindu moodul oma koodi ja lubada kogu MongoDB moodul. Lubaduse all mõtleme, et sinilind tagab, et iga MongoDB teegis määratletud meetod annab lubaduse.
Koodi selgitus: -
- Nõuda käsku kasutatakse Sinilinnu teegi kaasamiseks.
- Kõigi MongoDB mooduli pakutavate meetodite asünkroonversiooni loomiseks kasutage meetodit Bluebird .promisifyAll (). See tagab, et iga MongoDB mooduli meetod töötab taustal ja tagab, et iga meetodikõne jaoks tagastatakse lubadus MongoDB teegis.
Samm 3) Viimane samm on ühenduse loomine meie andmebaasiga, kõigi meie kollektsiooni kirjete hankimine ja kuvamine konsoolilogis.
Koodi selgitus: -
- Märkate, et andmebaasiga ühenduse loomiseks kasutame tavalise ühendamismeetodi asemel meetodit "connectAsync". Bluebird lisab Asongi märksõna tegelikult igale MongoDB teegi meetodile, et eristada lubatavaid kõnesid ja mitte. Seega pole mingit garantiid, et meetodid ilma sõnata Async tagastaksid väärtuse.
- Sarnaselt metodele connectAsync, kasutame nüüd ka meetodit findAsync kõigi kollektsiooni mongoDB 'Employee' kirjete tagastamiseks.
- Lõpuks, kui findAsync tagastab eduka lubaduse, määratleme siis koodiploki, et itereerida kogu kogu kirje ja kuvada need konsoolilogis.
Kui ülaltoodud toimingud on nõuetekohaselt läbi viidud, kuvatakse konsoolis kõiki töötaja kollektsiooni dokumente, nagu on näidatud allpool olevas väljundis.
Siin on teie viite kood
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);})});