Node.js应用程序,用户连接到不同的数据库

时间:2015-06-18 12:54:05

标签: node.js mongodb express

我有一个node.js(和express)产品管理应用程序,它连接到包含产品数据的mongodb数据库,并使用Stormpath进行用户管理。

这一切都很好,但现在我需要该应用程序能够连接到两个不同的数据库 - 一个用于英国产品,一个用于美国产品。用户需要能够随时在英国和美国数据库之间切换。

我已经能够为整个应用程序做这项工作,只需添加一个与一个数据库断开连接并使用MongoClient连接到另一个数据库的按钮,但我需要的是要么始终有两个连接,并且根据用户选择的国家/地区选择使用哪一个,或者为每个用户建立数据库连接。

这是做这种事的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我认为你可以产生2个活跃的mongodb连接,这是可能的。 根据 - npm module of mongodb documentation

var 
  mongo = require('mongodb'),
  MongoClient1 = mongo.MongoClient,
  MongoClient2 = mongo.MongoClient;


MongoClient1.connect('mongodb://somehost1:27017/db1', function(err, db) {
   //do things
});

MongoClient2.connect('mongodb://somehost2:27017/db2', function(err, db) {
   //do things
});

您可以将此数据库客户端注入请求中。 重新连接到数据库可能需要一些时间,用户可能会遇到性能不佳的情况。我认为最好保持两个活跃的连接。