„Bluebird“ yra „JavaScript“ skirta „Promise“ biblioteka. Stipriausia „Bluebird“ savybė yra ta, kad ji leidžia „pažadėti“ kitus „Node“ modulius, kad juos būtų galima naudoti asinchroniškai. „Promisify“ yra koncepcija, taikoma skambinimo funkcijoms. Ši koncepcija naudojama siekiant užtikrinti, kad kiekviena vadinamoji atgalinio ryšio funkcija grąžintų tam tikrą vertę.
Taigi, jei „Node JS“ modulyje yra atgalinio ryšio funkcija, kuri negrąžina vertės, ir jei mes pažadėsime mazgo modulį, visos šio konkretaus mazgo modulio funkcijos bus automatiškai modifikuotos, kad būtų užtikrinta, jog ji grąžina vertę.
Taigi, norėdami priversti „MongoDB“ modulį veikti asinchroniškai, galite naudoti „BlueBird“. Tai tiesiog suteikia dar vieną paprastumo lygį rašant „Node.js“ programas.
Mes pažvelgsime į pavyzdį, kaip naudoti "bluebird" modulį.
Mūsų pavyzdžiu pirmiausia bus užmegztas ryšys su „Darbuotojų kolekcija“ duomenų bazėje „EmployeeDB“. Jei bus užmegztas „tada“ ryšys, jis gaus visus kolekcijos įrašus ir atitinkamai juos parodys konsolėje.
Pažadų generavimas naudojant „BlueBird“ biblioteką
1 žingsnis) Įdiekite NPM modulius
Norint naudoti „Bluebird“ iš „Node“ programos, reikalingas „Bluebird“ modulis. Norėdami įdiegti „Bluebird“ modulį, vykdykite toliau pateiktą komandą
npm įdiegti mėlynąją paukštę
2 žingsnis) Kitas žingsnis - įtraukti „bluebird“ modulį į savo kodą ir pažadėti visą „MongoDB“ modulį. Pažadėdami mes turime omenyje, kad mėlynoji paukštė užtikrins, kad kiekvienas MongoDB bibliotekoje apibrėžtas metodas grąžintų pažadą.
Kodo paaiškinimas: -
- Reikalauti komanda naudojama įtraukti „Bluebird“ biblioteką.
- Naudokite „Bluebird“ .promisifyAll () metodą, kad sukurtumėte kiekvieno „MongoDB“ modulio pateikto metodo asinchroninę versiją. Tai užtikrina, kad kiekvienas „MongoDB“ modulio metodas bus vykdomas fone, ir užtikrinama, kad bus grąžintas pažadas dėl kiekvieno „MongoDB“ bibliotekos metodo iškvietimo.
3 žingsnis) Paskutinis žingsnis yra prisijungti prie mūsų duomenų bazės, gauti visus mūsų kolekcijos įrašus ir parodyti juos konsolės žurnale.
Kodo paaiškinimas: -
- Jūs pastebėsite, kad mes naudojame „connectAsync“ metodą, o ne įprastą prisijungimo prie duomenų bazės metodą. „Bluebird“ iš tikrųjų prideda „Async“ raktinį žodį prie kiekvieno MongoDB bibliotekos metodo, kad būtų galima atskirti skambučius, kurie grąžina pažadus, ir tuos, kurie ne. Taigi nėra jokios garantijos, kad metodai be žodžio „Async“ grąžins vertę.
- Panašiai kaip „connectAsync“ metodas, dabar mes naudojame „findAsync“ metodą, kad grąžintume visus įrašus „mongoDB“ „Employee“ kolekcijoje.
- Galiausiai, jei „findAsync“ grąžina sėkmingą pažadą, mes apibrėžiame kodo bloką, kad pakartotume kiekvieną kolekcijos įrašą ir parodytume juos konsolės žurnale.
Jei pirmiau minėti veiksmai bus atlikti tinkamai, visi darbuotojai kolekcijos dokumentai bus rodomi konsolėje, kaip parodyta toliau pateiktoje išvestyje.
Čia yra jūsų nuorodos kodas
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);})});