heroku / dokku mongodb连接错误

时间:2015-08-30 12:26:00

标签: node.js mongodb heroku dokku

我在互联网上搜索过但无法找到问题的答案。它似乎特定于我的应用程序,但希望不是:)

在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上,最终它也能正常工作。只有在我尝试使用自动化工具时才会出现问题。

任何帮助非常感谢

谢谢!

0 个答案:

没有答案