Bluebird is een complete Promise-bibliotheek voor JavaScript. De sterkste eigenschap van Bluebird is dat je hiermee andere Node-modules kunt "beloven" om ze asynchroon te gebruiken. Promisify is een concept dat wordt toegepast op callback-functies. Dit concept wordt gebruikt om ervoor te zorgen dat elke callback-functie die wordt aangeroepen een waarde retourneert.
Dus als een Node JS-module een callback-functie bevat die geen waarde retourneert, en als we de node-module beloven, worden alle functies in die specifieke node-module automatisch aangepast om ervoor te zorgen dat deze een waarde retourneert.
U kunt dus BlueBird gebruiken om de MongoDB-module asynchroon te laten draaien. Dit voegt gewoon een ander niveau van gemak toe bij het schrijven van Node.js-applicaties.
We zullen een voorbeeld bekijken van het gebruik van de bluebird-module.
In ons voorbeeld wordt eerst een verbinding tot stand gebracht met de "Employee collection" in de "EmployeeDB" database. Als de "toen" -verbinding tot stand is gebracht, worden alle records in de verzameling opgehaald en dienovereenkomstig in de console weergegeven.
Beloftes maken met de BlueBird-bibliotheek
Stap 1) De NPM-modules installeren
Om Bluebird vanuit een Node-applicatie te gebruiken, is de Bluebird-module vereist. Voer de onderstaande opdracht uit om de Bluebird-module te installeren
npm installeer bluebird
Stap 2) De volgende stap is om de bluebird-module in uw code op te nemen en de volledige MongoDB-module te beloven. Met beloven bedoelen we dat bluebird ervoor zorgt dat elke methode die in de MongoDB-bibliotheek is gedefinieerd, een belofte retourneert.
Code Verklaring: -
- De opdracht vereist wordt gebruikt om de Bluebird-bibliotheek op te nemen.
- Gebruik de .promisifyAll () -methode van Bluebird om een asynchrone versie te maken van elke methode die de MongoDB-module biedt. Dit zorgt ervoor dat elke methode van de MongoDB-module op de achtergrond wordt uitgevoerd en zorgt ervoor dat er een belofte wordt geretourneerd voor elke methodeaanroep in de MongoDB-bibliotheek.
Stap 3) De laatste stap is om verbinding te maken met onze database, alle records in onze collectie op te halen en ze weer te geven in ons consolelogboek.
Code Verklaring: -
- U zult merken dat we de "connectAsync" -methode gebruiken in plaats van de normale verbindingsmethode om verbinding te maken met de database. Bluebird voegt eigenlijk het Async-sleutelwoord toe aan elke methode in de MongoDB-bibliotheek om onderscheid te maken tussen aanroepen die beloften retourneren en degenen die dat niet doen. Er is dus geen garantie dat methoden zonder het Async-woord een waarde retourneren.
- Vergelijkbaar met de connectAsync-methode, gebruiken we nu de findAsync-methode om alle records in de mongoDB 'Employee'-collectie te retourneren.
- Ten slotte, als de findAsync een succesvolle belofte retourneert, definiëren we een codeblok om elk record in de verzameling te herhalen en weer te geven in het consolelogboek.
Als de bovenstaande stappen correct worden uitgevoerd, worden alle documenten in de werknemerscollectie weergegeven in de console zoals weergegeven in de onderstaande uitvoer.
Hier is de code voor uw referentie
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);})});