无法在heroku上部署nodejs-mongodb项目

时间:2014-06-08 20:48:36

标签: node.js mongodb heroku express

我的连接文件如下所示:

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变量的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

传递给MongoClient.connect方法的回调函数将在建立连接后异步执行,因此在调用db.collection时(' accounts')db变量未定义。

尝试包装与回调函数内的数据库一起使用的其余代码,这将确保在建立连接后执行它