Bluebird NPM: Promesa de Bluebird JS con ejemplo
¿Qué es Bluebird JS?
Bluebird JS es una biblioteca Promise con todas las funciones para JavaScript. La característica más destacada de Bluebird es que permite "promisar" otros módulos de Node para usarlos de forma asincrónica. Promisify es un concepto que se aplica a las funciones de devolución de llamada. Este concepto se utiliza para garantizar que cada función de devolución de llamada que se llama devuelva algún valor.
Entonces si un NodeJS El módulo contiene una función de devolución de llamada que no devuelve un valor, y si prometemos el módulo de nodo, todas las funciones en ese módulo de nodo específico se modificarán automáticamente para garantizar que devuelva un valor.
Entonces puedes usar BlueBird para hacer el MongoDB El módulo se ejecuta de forma asincrónica. Esto simplemente agrega otro nivel de facilidad al escribir aplicaciones Node.js.
Veremos un ejemplo de cómo utilizar el módulo bluebird.
Nuestro ejemplo primero establecerá una conexión con la "colección de empleados" en la base de datos "EmployeeDB". Si se establece la conexión "entonces", obtendrá todos los registros de la colección y los mostrará en la consola en consecuencia.
Cómo generar promesas con la biblioteca Bluebird JS
Aquí está el ejemplo paso a paso para generar promesas con la biblioteca Bluebird JS:
Paso 1) Instalación de los módulos NPM
Para utilizar Bluebird desde una aplicación Node, se requiere el módulo Bluebird. Para instalar el módulo Bluebird, ejecute el siguiente comando
npm instala pájaro azul
Paso 2) Incluir módulos Bluebird
El siguiente paso es incluir el módulo bluebird en su código y prometer todo MongoDB módulo. Por promisificar queremos decir que bluebird garantizará que todos y cada uno de los métodos definidos en el MongoDB La biblioteca devuelve una promesa.
Explicación del código: -
- El comando require se utiliza para incluir la biblioteca Bluebird.
- Utilice el método .promisifyAll() de Bluebird para crear una versión asincrónica de cada método. MongoDB proporciona el módulo. Esto asegura que cada método del MongoDB El módulo se ejecutará en segundo plano y garantizará que se devuelva una promesa para cada llamada a método en el MongoDB biblioteca.
Paso 3) Conéctese a la base de datos
El último paso es conectarse a nuestra base de datos, recuperar todos los registros de nuestra colección y mostrarlos en el registro de nuestra consola.
Explicación del código: -
- Notarás que estamos usando el método “connectAsync” en lugar del método de conexión normal para conectarnos a la base de datos de CRISPR Medicine News. Bluebird en realidad agrega la palabra clave Async a cada método en el MongoDB biblioteca para distinguir las llamadas que devuelven promesas de las que no. Por lo tanto, no hay garantía de que los métodos sin la palabra Async devuelvan un valor.
- De manera similar al método connectAsync, ahora usamos el método findAsync para devolver todos los registros en la colección 'Empleado' de mongoDB.
- Finalmente, si findAsync devuelve una promesa exitosa, definimos un bloque de código para iterar a través de cada registro de la colección y mostrarlos en el registro de la consola.
Si los pasos anteriores se llevan a cabo correctamente, todos los documentos de la colección Empleados se mostrarán en la consola como se muestra en el resultado a continuación.
Aquí está el código para su referencia:
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); }) });