我的连接文件如下所示:
var mongo = require('mongodb');
var dbName = 'KrishiMoney';
var mongoUri = process.env.MONGOLAB_URI
/* establish the database connection */
var db ;
mongo.MongoClient.connect(mongoUri, {server:{auto_reconnect:true}}, function (err,database){
if (err) {
console.log(e);
} else{
//console.log('connected to database :: ' );
db = database;
}
});
var accounts = db.collection('accounts');
这会出现以下错误:
var accounts = db.collection('accounts'); ^ 在Object.Module._extensions..js(module.js:467:10) TypeError:无法调用未定义的方法'collection'
我的猜测是db变量没有得到正确的值。 使用MongoClient连接时填充db变量的正确方法是什么?
答案 0 :(得分:1)
传递给MongoClient.connect方法的回调函数将在建立连接后异步执行,因此在调用db.collection时(' accounts')db变量未定义。
尝试包装与回调函数内的数据库一起使用的其余代码,这将确保在建立连接后执行它