How to use MongoDB with promises in Node.js?



I’ve been trying to discover how to use MongoDB with Node.js and in the docs it seems the suggested way is to use callbacks. Now, I know that it is just a matter of preference, but I really prefer using promises.

The problem is that I didn’t find how to use them with MongoDB. Indeed, I’ve tried the following:

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

var url = 'mongodb://localhost:27017/example';

MongoClient.connect(url).then(function (err, db) {
    console.log(db);
});

And the result is undefined. In that case it seems this is not the way to do so.

Is there any way to use mongo db inside Node with promises instead of callbacks?

Answer

Your approach is almost correct, just a tiny mistake in your argument

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) {})


Source: stackoverflow