我有一个node.js(和express)产品管理应用程序,它连接到包含产品数据的mongodb数据库,并使用Stormpath进行用户管理。
这一切都很好,但现在我需要该应用程序能够连接到两个不同的数据库 - 一个用于英国产品,一个用于美国产品。用户需要能够随时在英国和美国数据库之间切换。
我已经能够为整个应用程序做这项工作,只需添加一个与一个数据库断开连接并使用MongoClient连接到另一个数据库的按钮,但我需要的是要么始终有两个连接,并且根据用户选择的国家/地区选择使用哪一个,或者为每个用户建立数据库连接。
这是做这种事的正确方法吗?
答案 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
});
您可以将此数据库客户端注入请求中。 重新连接到数据库可能需要一些时间,用户可能会遇到性能不佳的情况。我认为最好保持两个活跃的连接。