Bluebird NPM: Bluebird JS Promise esimerkillä
Mikä on Bluebird JS?
Bluebird JS on täysin varusteltu Promise-kirjasto JavaKäsikirjoitus. Bluebirdin vahvin ominaisuus on, että sen avulla voit "lupata" muita Node-moduuleja, jotta niitä voidaan käyttää asynkronisesti. Promisify on konsepti, jota sovelletaan takaisinsoittotoimintoihin. Tätä käsitettä käytetään varmistamaan, että jokainen kutsuttu takaisinsoittotoiminto palauttaa jonkin arvon.
Joten jos a NodeJS moduuli sisältää takaisinkutsun funktion, joka ei palauta arvoa, ja jos lupaamme solmumoduulin, kaikki kyseisen solmumoduulin funktiot muutetaan automaattisesti sen varmistamiseksi, että se palauttaa arvon.
Joten voit käyttää BlueBirdia sen tekemiseen MongoDB moduuli toimii asynkronisesti. Tämä vain lisää uuden tason helppoutta Node.js-sovellusten kirjoittamiseen.
Katsomme esimerkkiä Bluebird-moduulin käytöstä.
Esimerkkimme muodostaa ensin yhteyden "EmployeeDB"-tietokannan "Työntekijäkokoelmaan". Jos "sitten"-yhteys muodostetaan, se hakee kaikki kokoelman tietueet ja näyttää ne konsolissa vastaavasti.
Lupausten luominen Bluebird JS -kirjaston avulla
Tässä on vaihe vaiheelta esimerkki tuottaa lupauksia Bluebird JS -kirjaston kanssa:
Vaihe 1) NPM-moduulien asentaminen
Bluebird-moduulin käyttäminen Solmusovelluksessa edellyttää Bluebird-moduulia. Asenna Bluebird-moduuli suorittamalla alla oleva komento
npm asenna bluebird
Vaihe 2) Sisällytä Bluebird-moduulit
Seuraava askel on sisällyttää bluebird-moduuli koodiisi ja luvata koko MongoDB moduuli. Lupauksella tarkoitamme, että bluebird varmistaa, että jokainen menetelmässä määritelty menetelmä MongoDB kirjasto antaa lupauksen.
Koodin selitys: -
- Require-komentoa käytetään sisällyttämään Bluebird-kirjasto.
- Käytä Bluebirdin .promisifyAll()-metodia luodaksesi asynkronisen version jokaisesta menetelmästä MongoDB moduuli tarjoaa. Tämä varmistaa, että jokainen menetelmä MongoDB moduuli toimii taustalla ja varmistaa, että jokaisesta menetelmäkutsusta palautetaan lupaus MongoDB kirjasto.
Vaihe 3) Muodosta yhteys tietokantaan
Viimeinen vaihe on muodostaa yhteys tietokantaamme, hakea kaikki kokoelmamme tietueet ja näyttää ne konsolin lokissamme.
Koodin selitys: -
- Huomaat, että käytämme "connectAsync" -menetelmää normaalin yhteystavan sijasta yhteyden muodostamiseen tietokanta. Bluebird itse asiassa lisää Async-avainsanan jokaiseen menetelmään MongoDB kirjasto erottaa ne puhelut, jotka antavat lupauksia, ja ne, jotka eivät anna lupauksia. Ei siis ole takeita siitä, että menetelmät ilman async-sanaa palauttavat arvon.
- ConnectAsync-menetelmän tapaan käytämme nyt findAsync-menetelmää kaikkien mongoDB:n Työntekijä-kokoelman tietueiden palauttamiseen.
- Lopuksi, jos findAsync palauttaa onnistuneen lupauksen, määritämme sitten koodilohkon, joka toistaa jokaisen kokoelman tietueen ja näyttää ne konsolin lokissa.
Jos yllä olevat vaiheet suoritetaan oikein, kaikki Työntekijäkokoelman asiakirjat näytetään konsolissa alla olevan tulosteen mukaisesti.
Tässä on koodi viitteellesi:
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); }) });