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');};这起作用了。谢谢