Фон
Создание небольшого веб-приложения, которое подключается к базе данных Mongo, размещенной на Mlab .Я создал базу данных на mlab и создал пользователей с правами чтения / записи.Я также создал коллекцию users
с несколькими записями.
Проблема
Когда я пытаюсь подключиться к базе данных, используя код mongo.github.io , Я нажал на ошибку:
/home/ed/dev/mongo-demo/node_modules/mongodb/lib/operations/mongo_client_ops.js:466
throw err;
^
TypeError: Cannot read property 'db' of null
Код
var MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://<user>:<pass>@ds115434.mlab.com:15434';
// Database Name
const dbName = 'princee3-music';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
console.log("Connected successfully to server");
const db = client.db(dbName);
client.close();
});
Что я пробовал
Странно, если я подключаюсь через оболочку, используя:
mongo ds115434.mlab.com:15434/princee3-music -u <dbuser> -p <dbpassword>
Это прекрасно работает, или, если я обертываю соединение в анонимную асинхронную функцию с самозвонком, она также подключается.
Async Wrapper
const MongoClient = require('mongodb').MongoClient;
const mongoUrl = 'mongodb://<user>:<pass>@ds115434.mlab.com:15434/';
const dbName = 'princee3-music';
(async() => {
const client = await MongoClient.connect(mongoUrl, { useNewUrlParser: true});
const db = client.db(dbName);
db.collection('users').insertOne({
email: user.email,
pass: hashedPassword,
admin: true
}, (err, result) => {
if (err) {
reject({error: err});
} else {
resolve({message: 'okay'});
}
});
client.close();
})();
Любые указатели на гдеЯ могу пойти не так, как надо.