我在互联网上搜索过但无法找到问题的答案。它似乎特定于我的应用程序,但希望不是:)
在heroku部署期间以及dokku部署期间都会发生此错误。
但重点。
我有app.js文件,负责数据库连接的部分如下所示:
/**
* DB connection
*/
var dbUrl;
if(app.get('env') === 'development'){
dbUrl = process.env.MONGOLAB_URI || "mongodb://localhost:27017/test";;
}
var db = require('./database');
db.connect(dbUrl, function(err){
if(err) {
console.log('Unable to connect to MongoDB');
} else {
console.log('MongoDB connected successfully!');
}
});
我只在开发环境工作,所以我删除了生产位。
正如您所看到的,我从heroku环境变量中获取dbUrl,然后我需要db index文件,如下所示:
var MongoClient = require('mongodb').MongoClient;
var state = {
db: null
};
exports.connect = function(url, done) {
if(state.db) return done();
console.log("trying to connect to mongodb");
console.log(url);
MongoClient.connect(url, function(err, db){
console.log("mongodb callback");
if(err) return done(err);
state.db = db;
done();
});
};
而不是从数据库索引文件(上面)调用app.js文件(第一个代码片段)中的db.connect方法。
我收到了这个错误:
使用命令
启动流程NODE_ENV=development node server/bin/www
的mongodb://用户:password@ds011111.mongolab.com:33333 / DB_NAME
尝试连接到mongodb << ----这是我的db.connect方法中的console.log
/app/server/node_modules/mongodb/lib/server.js:228
process.nextTick(function() { throw err; }) Error: connect ECONNREFUSED
at exports._errnoException(util.js:746:11) 在TCPConnectWrap.afterConnect [as oncomplete](net.js:1010:19) 国家从开始变为崩溃
仅在heroku或dokku部署期间发生错误。
我的数据库连接是100%正确的(所有环境变量都没问题,所以请不要问它),在shell中检查它,以及从应用程序中的localhost连接到它。 / p>
基本上它适用于我的本地主机,我已经使用ubuntu将其部署在vps上,最终它也能正常工作。只有在我尝试使用自动化工具时才会出现问题。
任何帮助非常感谢
谢谢!