Saltar al contenido

Consultas asincrónicas/en espera del controlador mongodb de Node.js

Luego de mirar en varios repositorios y sitios webs al concluir nos hemos encontrado la respuesta que te mostraremos a continuación.

Solución:

Dado que a todas las respuestas les faltan algunos bits (bloques de captura, verificar que el cliente no esté null) Vine con mi propia solución. Probado con el servidor Mongo v4.0.7 y el controlador Node JS 3.2.2.

Tenga en cuenta que el ejemplo es un programa de consola, donde cerramos la conexión al servidor en el finally cuadra. En una aplicación web, las conexiones se reutilizan. Consulte los documentos de Node Mongo. Además, los errores se registran con bibliotecas como Winston o Morgan y no se registran en la consola.

const MongoClient = require('mongodb').MongoClient;

const url = 'mongodb://localhost:27017';

async function findOne() 

    const client = await MongoClient.connect(url,  useNewUrlParser: true )
        .catch(err =>  console.log(err); );

    if (!client) 
        return;
    

    try 

        const db = client.db("testdb");

        let collection = db.collection('cars');

        let query =  name: 'Volkswagen' 

        let res = await collection.findOne(query);

        console.log(res);

     catch (err) 

        console.log(err);
     finally 

        client.close();
    


await findOne();

Editar: ‘mongodb’ v3.x

de acuerdo con el futuro de mongoDB ES6, puede usarlo de esta manera;

let MongoClient = require('mongodb').MongoClient;
const connectionString = 'mongodb://localhost:27017';

    (async () => 
        let client = await MongoClient.connect(connectionString,
             useNewUrlParser: true );

        let db = client.db('dbName');
        try 
           const res = await db.collection("collectionName").updateOne( 
               "someKey": someValue
           ,  $set: someObj ,  upsert: true );

           console.log(`res => $JSON.stringify(res)`);
        
        finally 
            client.close();
        
    )()
        .catch(err => console.error(err));

Gracias. Trabajando muy bien con ES6:

const middleWare = require('middleWare');
const MONGO = require('mongodb').MongoClient;

router.get('/', middleWare(async (req, res, next) => 
    const db = await MONGO.connect(url);
    const MyCollection = db.collection('MyCollection');
    const result = await MyCollection.find(query).toArray();
    res.send(result);
))

Tienes la opción de amparar nuestro estudio añadiendo un comentario y valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *