无法使用createConnection()连接到mongolab

时间:2016-02-27 08:28:10

标签: node.js mongodb mongoose mlab

我无法使用以下代码连接到mongolab:

// DATABASE CONNECTION
var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = db1.useDb('mongodb://foo:bar@ds011168.mlab.com:12341/db2');

我试图在2个数据库中创建多个连接,所以我使用.createConnection()作为第一个数据库,然后使用db1.useDb()作为第二个数据库。这对localhost完全正常,但是当我切换到mongolab时,一切都崩溃了。

我的mongolab设置没有任何问题,因为当我只使用connect()函数时:var db1 = mongoose.connect('mongodb://foo:bar@ds011168.mlab.com:11168/db1');它连接没有问题。但是,当我使用上面给出的代码(第一个代码块)时,会出现此错误:MongoError: database names cannot contain the character '.'

我的目标是能够连接到mongolab上的多个数据库。

使用最新的mongoose npm。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。我将发布此答案以供将来参考,以防有人可能遇到同样的问题。

请注意以下代码:

var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = db1.useDb('mongodb://foo:bar@ds011168.mlab.com:12341/db2');

我没有使用db1的连接,而是使用它:

var db1 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:11168/db1');
var db2 = mongoose.createConnection('mongodb://foo:bar@ds011168.mlab.com:12341/db2');

db2拥有自己的连接。

免责声明,我还不知道这是否是正确的方法,但同时也解决了问题。也许通过这样做,您可以为db1db2

创建2个连接事件检查