che*_*032 5 mongoose mongodb node.js
我正在尝试实现一项功能,用户可以在登录时决定要连接到的数据库。由于它是一个网络应用程序,在所有客户端都可以使用的服务器上运行,因此如何在不更改每个客户端数据库的情况下实现此功能?
在我们公司中,我们使用猫鼬作为MongoDB API。我阅读了所有文档,但没有注意到在同一应用程序内一次使用多个连接到不同主机上不同数据库的多个连接的任何功能-而不会损害其他客户端的工作。
根据这篇文章,我完成的最有价值的事情是基于多个猫鼬实例打开几个连接: 在单个node.js项目中的猫鼬和多个数据库
我创建了一些文件,例如:
var mongoose = require('mongoose');
mongoose.createConnection('mongodb://10.20.100.71:27017/DB_NAME');
module.exports = exports = mongoose;
Run Code Online (Sandbox Code Playgroud)
然后我要求他们:
let stageAccess = require('./databsesConnections/stageAccess');
let prodAccess = require('./databsesConnections/prodAccess');
Run Code Online (Sandbox Code Playgroud)
我调试了文件并检查了连接是否建立。此外,我检查了mongoose文档,并得出结论,我可以选择哪个连接为默认连接,如文档所述:“ Mongoose在调用mongoose.connect()时会创建一个默认连接。您可以使用mongoose访问该默认连接。连接。”
所以我尝试了:
mongoose.connection = mongoose.connections[1];
Run Code Online (Sandbox Code Playgroud)
而且效果很好。
因此,实际的问题是,如果客户端1接近该应用程序,选择连接dbNum1并开始工作,然后客户端2接近该应用程序并选择连接到dbNum2,将会发生什么?