Bluebird ir pilnībā aprīkota Promise bibliotēka JavaScript. Spēcīgākā Bluebird iezīme ir tā, ka tā ļauj "apsolīt" citus Node moduļus, lai tos izmantotu asinhroni. Promisify ir jēdziens, ko izmanto atzvanīšanas funkcijām. Šis jēdziens tiek izmantots, lai nodrošinātu, ka katra izsauktā funkcija atgriež kādu vērtību.
Tātad, ja mezgla JS modulī ir atzvanīšanas funkcija, kas neatgriež vērtību, un, ja mēs solām mezgla moduli, visas funkcijas šajā konkrētajā mezgla modulī tiktu automātiski modificētas, lai nodrošinātu, ka tā atgriež vērtību.
Tātad jūs varat izmantot BlueBird, lai MongoDB modulis darbotos asinhroni. Tas vienkārši palielina vēl vienu vieglumu, rakstot Node.js lietojumprogrammas.
Mēs apskatīsim piemēru, kā izmantot moduli bluebird.
Mūsu piemērs vispirms izveidos savienojumu ar "Darbinieku kolekciju" datu bāzē "EmployeeDB". Ja tiks izveidots savienojums “tad”, tas iegūs visus kolekcijas ierakstus un attiecīgi tos parādīs konsolē.
Solījumu ģenerēšana ar BlueBird bibliotēku
1. solis) NPM moduļu instalēšana
Lai izmantotu Bluebird no Node lietojumprogrammas, ir nepieciešams Bluebird modulis. Lai instalētu Bluebird moduli, palaidiet zemāk esošo komandu
npm instalēt zilo putnu
2. solis . Nākamais solis ir iekļaut zilā putna moduli jūsu kodā un apsolīt visu MongoDB moduli. Ar solījumu mēs domājam, ka zilais putns nodrošinās, ka katra MongoDB bibliotēkā noteiktā metode sniedz solījumu.
Koda skaidrojums: -
- Komanda pieprasīt tiek izmantota, lai iekļautu Bluebird bibliotēku.
- Izmantojiet metodi Bluebird .promisifyAll (), lai izveidotu asinhrono versiju katrai metodei, kuru nodrošina MongoDB modulis. Tas nodrošina, ka katra MongoDB moduļa metode darbosies fonā un nodrošina, ka tiek atgriezts solījums par katru metodes izsaukumu MongoDB bibliotēkā.
3. solis . Pēdējais solis ir izveidot savienojumu ar mūsu datu bāzi, izgūt visus mūsu kolekcijas ierakstus un parādīt tos konsoles žurnālā.
Koda skaidrojums: -
- Jūs ievērosiet, ka, lai izveidotu savienojumu ar datu bāzi, mēs izmantojam metodi "connectAsync", nevis parasto savienojuma metodi. Bluebird faktiski pievieno Async atslēgvārdu katrai MongoDB bibliotēkas metodei, lai nošķirtu zvanus, kas atgriež solījumus, un tos, kuri to nedara. Tāpēc nav garantijas, ka metodes bez vārda Async atgriezīs vērtību.
- Līdzīgi metodei connectAsync, tagad mēs izmantojam metodi findAsync, lai atgrieztu visus ierakstus kolekcijā mongoDB 'Employee'.
- Visbeidzot, ja findAsync atgriež veiksmīgu solījumu, mēs definējam koda bloku, lai atkārtotu katru kolekcijas ierakstu un parādītu tos konsoles žurnālā.
Ja iepriekš minētās darbības tiek veiktas pareizi, visi darbinieki kolekcijas dokumenti tiks parādīti konsolē, kā parādīts zemāk esošajā izvadē.
Šeit ir kods jūsu atsaucei
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);})});