Bluebird est une bibliothèque Promise complète pour JavaScript. La caractéristique la plus forte de Bluebird est qu'il vous permet de «promettre» d'autres modules Node afin de les utiliser de manière asynchrone. Promisify est un concept appliqué aux fonctions de rappel. Ce concept est utilisé pour garantir que chaque fonction de rappel appelée renvoie une valeur.
Donc, si un module Node JS contient une fonction de rappel qui ne renvoie pas de valeur, et si nous promettons le module de nœud, toutes les fonctions de ce module de nœud spécifique seront automatiquement modifiées pour garantir qu'il renvoie une valeur.
Vous pouvez donc utiliser BlueBird pour que le module MongoDB s'exécute de manière asynchrone. Cela ajoute simplement un autre niveau de facilité lors de l'écriture d'applications Node.js.
Nous allons regarder un exemple d'utilisation du module bluebird.
Notre exemple établira d'abord une connexion à la "collection Employee" dans la base de données "EmployeeDB". Si la connexion "alors" est établie, il obtiendra tous les enregistrements de la collection et les affichera dans la console en conséquence.
Générer des promesses avec la bibliothèque BlueBird
Étape 1) Installation des modules NPM
Pour utiliser Bluebird à partir d'une application Node, le module Bluebird est requis. Pour installer le module Bluebird, exécutez la commande ci-dessous
npm installer bluebird
Étape 2) L'étape suivante consiste à inclure le module bluebird dans votre code et à valider l'intégralité du module MongoDB. Par promisify, nous entendons que bluebird s'assurera que chaque méthode définie dans la bibliothèque MongoDB renvoie une promesse.
Explication du code: -
- La commande require est utilisée pour inclure la bibliothèque Bluebird.
- Utilisez la méthode .promisifyAll () de Bluebird pour créer une version asynchrone de chaque méthode fournie par le module MongoDB. Cela garantit que chaque méthode du module MongoDB s'exécutera en arrière-plan et garantira qu'une promesse est renvoyée pour chaque appel de méthode dans la bibliothèque MongoDB.
Étape 3) La dernière étape consiste à se connecter à notre base de données, à récupérer tous les enregistrements de notre collection et à les afficher dans notre journal de console.
Explication du code: -
- Vous remarquerez que nous utilisons la méthode "connectAsync" au lieu de la méthode de connexion normale pour la connexion à la base de données. Bluebird ajoute en fait le mot-clé Async à chaque méthode de la bibliothèque MongoDB pour distinguer les appels qui renvoient des promesses et ceux qui ne le font pas. Il n'y a donc aucune garantie que les méthodes sans le mot Async renverront une valeur.
- Semblable à la méthode connectAsync, nous utilisons maintenant la méthode findAsync pour renvoyer tous les enregistrements de la collection mongoDB 'Employee'.
- Enfin, si findAsync renvoie une promesse réussie, nous définissons ensuite un bloc de code pour parcourir chaque enregistrement de la collection et les afficher dans le journal de la console.
Si les étapes ci-dessus sont correctement exécutées, tous les documents de la collection Employee seront affichés dans la console comme indiqué dans la sortie ci-dessous.
Voici le code pour votre référence
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);})});