如何连接到mongoose中的多个主机?

时间:2015-02-10 15:15:47

标签: javascript mongodb mongoose

我有一个基于express和mongoose构建的节点js app。到目前为止,我正在使用mongoose.connect(uri,options)建立数据库连接。但是从现在开始,我希望能够连接到多个主机上的多个数据库。如果我在同一台主机上,我的一切工作正常(我使用mongoose.createConnection(uri,options))。对于存储在同一主机或localhost数据库中的生产数据库,一切都很好。如果我尝试连接到一个localhost数据库和一个远程数据库,而不是两个都在同一主机上,则会出现此问题。

  • 有谁知道会出现什么问题?
  • 是否有我缺少的配置选项?

DbConnection文件:

this.sharedDbConnection = this.mongooseConnection.createConnection('sharedDb');
this.defaultDbConnection = this.mongooseConnection.createConnection('mongodb');

MongooseConnection文件:

function getConnectionUrl(config) {

    return 'mongodb://' + config.user + ':' + config.password + '@' + config.host + ':' + config.port + '/' + config.dbName;
}

MongooseConnection.prototype.createConnection = function(dbName) {

    var connection = this.mongoose.createConnection(getConnectionUrl(this.config[dbName]), this.mongooseConfig, function(err) {

        if(err) {

            console.log(err);

        } else {

            console.log('connected with createConnection on ', dbName);

        }

    });

    return connection;

};

MongooseConfig:

{
    server: {
        poolSize:      10,
        socketOptions: {
            keepAlive: 1
        }
    },
    db:     {
        numberOfRetries:  10,
        retryMiliSeconds: 1000
    },
    auth:   false
};

0 个答案:

没有答案