Bluebird NPM: Bluebird JS Belofte met voorbeeld
Wat is Bluebird JS?
Bluebird JS is een volledig uitgeruste Promise-bibliotheek voor JavaScript. De sterkste eigenschap van Bluebird is dat het u toestaat om andere Node-modules te "promisifyen" 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 NodeJS module bevat een callback-functie die geen waarde retourneert, en als we de knooppuntmodule beloven, worden alle functies in die specifieke knooppuntmodule automatisch aangepast om ervoor te zorgen dat deze een waarde retourneert.
Je kunt dus BlueBird gebruiken om de MongoDB module asynchroon draaien. Dit voegt gewoon een extra niveau van gemak toe bij het schrijven van Node.js-applicaties.
We zullen een voorbeeld bekijken van hoe u de Bluebird-module kunt gebruiken.
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.
Hoe u beloften kunt genereren met Bluebird JS Library
Hier is het stapsgewijze voorbeeld beloftes genereren met Bluebird JS-bibliotheek:
Stap 1) De NPM-modules installeren
Om Bluebird vanuit een Node-applicatie te gebruiken, is de Bluebird-module vereist. Om de Bluebird-module te installeren, voert u de onderstaande opdracht uit
npm installeer bluebird
Stap 2) Voeg Bluebird-modules toe
De volgende stap is om de Bluebird-module in uw code op te nemen en het geheel te beloven MongoDB module. Met beloven bedoelen we dat Bluebird ervoor zal zorgen dat elke methode die in de MongoDB bibliotheek geeft een belofte terug.
Code-uitleg: -
- De opdracht require wordt gebruikt om de Bluebird-bibliotheek op te nemen.
- Gebruik de .promisifyAll()-methode van Bluebird om een asynchrone versie van elke methode te maken. MongoDB module biedt. Dit zorgt ervoor dat elke methode van de MongoDB module draait op de achtergrond en zorgt ervoor dat er een belofte wordt geretourneerd voor elke methodeaanroep in de MongoDB bibliotheek.
Stap 3) Maak verbinding met de database
De laatste stap is om verbinding te maken met onze database, alle records in onze verzameling op te halen en ze weer te geven in ons consolelogboek.
Code-uitleg: -
- U zult merken dat we de "connectAsync"-methode gebruiken in plaats van de normale verbindingsmethode voor het verbinden met de databankBluebird voegt het Async-trefwoord daadwerkelijk toe aan elke methode in de MongoDB bibliotheek om onderscheid te maken tussen aanroepen die promises retourneren en aanroepen die dat niet doen. Er is dus geen garantie dat methoden zonder het Async-woord een waarde retourneren.
- Net als de connectAsync-methode gebruiken we nu de findAsync-methode om alle records in de mongoDB 'Employee'-verzameling te retourneren.
- Als findAsync uiteindelijk een succesvolle belofte retourneert, definiëren we een codeblok om door elke record in de verzameling te itereren en deze in het consolelogboek weer te geven.
Als de bovenstaande stappen correct worden uitgevoerd, worden alle documenten in de werknemerscollectie weergegeven in de console, zoals hieronder weergegeven.
Hier is de code ter 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); }) });