Node.js 无法在heroku上部署nodejs mongodb项目

Node.js 无法在heroku上部署nodejs mongodb项目,node.js,mongodb,heroku,express,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}}, func

我的连接文件如下所示:

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

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


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

执行了以下操作:var db;风险值账户;/*建立数据库连接*/mongo.MongoClient.connect(mongoUri,{server:{auto_reconnect:true}},函数(err,数据库){if(err){console.log(e);}else{console.log('connected to database:');db=database;accounts=db.collection('accounts');};这起作用了。谢谢