Contamos con tu apoyo para compartir nuestros posts acerca de las ciencias de la computación.
Solución:
Su enfoque es casi correcto, solo un pequeño error en su argumento.
var MongoClient = require('mongodb').MongoClient
var url = 'mongodb://localhost:27017/example'
MongoClient.connect(url)
.then(function (db) // <- db as first argument
console.log(db)
)
.catch(function (err) )
también puedes hacer asíncrono/espera
async function main()
let client, db;
try
client = await MongoClient.connect(mongoUrl, useNewUrlParser: true);
db = client.db(dbName);
let dCollection = db.collection('collectionName');
let result = await dCollection.find();
// let result = await dCollection.countDocuments();
// your other codes ....
return result.toArray();
catch(err) console.error(err); // catch any mongo error here
finally client.close(); // make sure to close your connection after
Dado que ninguna de las respuestas anteriores menciona cómo hacer esto sin bluebird o q o cualquier otra biblioteca elegante, permítanme agregar mis 2 centavos en esto.
Así es como se hace una inserción con promesas ES6 nativas
'use strict';
const
constants = require('../core/constants'),
mongoClient = require('mongodb').MongoClient;
function open()
// Connection URL. This is where your mongodb server is running.
let url = constants.MONGODB_URI;
return new Promise((resolve, reject)=>
// Use connect method to connect to the Server
mongoClient.connect(url, (err, db) =>
if (err)
reject(err);
else
resolve(db);
);
);
function close(db)
//Close connection
if(db)
db.close();
let db =
open : open,
close: close
module.exports = db;
Definí mi método open() como el que devuelve una promesa. Para realizar una inserción, aquí está mi fragmento de código a continuación
function insert(object)
let database = null;
zenodb.open()
.then((db)=>
database = db;
return db.collection('users')
)
.then((users)=>
return users.insert(object)
)
.then((result)=>
console.log(result);
database.close();
)
.catch((err)=>
console.error(err)
)
insert(name: 'Gary Oblanka', age: 22);
Espero que ayude. Si tiene alguna sugerencia para mejorar esto, hágamelo saber, ya que estoy dispuesto a mejorar 🙂
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)