javascript - node.js和mongoose中如何根据请求连接到不同的数据库
问题描述
我正在开发一个有多个用户的 SaaS 应用程序。所以我需要根据请求用户使用适当的数据库。下面是我的基本数据库连接。
mongoose.connect(databaseLink, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
})
我们可以使用createConnection
而不是connect
连接到多个数据库。但为此我需要指定单独的模型。在这里,我需要为每个数据库共享相同的模型。
编辑
您可以假设所需的数据库名称将存储在req.dbName
对象中。client1
因此,当用户从, req.dbName
will发出请求时,client1
我需要client1
为该特定请求使用数据库。
解决方案
您可以简单地创建一个对象并将所有连接字符串存储在那里,并且根据需要您可以使用连接字符串
var connetion_string = { "user":"mongodb://localhost:27017/usercollection", "marks":"mongodb://localhost:27017/markscollection"
}
推荐阅读
- javascript - Redux createStore 源代码 - 增强器递归回调部分的无限循环风险?
- javascript - (Vanilla JS)使用单击事件侦听器捕获数组元素的索引?
- arrays - 确定Ruby中嵌套数组的中值元素?
- java - 使用 mapreduce 的第二大薪水 - 输出不如预期
- javascript - JQuery ajax 不适用于特定的输入字符串参数“
我正在使用字符串输入参数进行 JQuery ajax 调用,如下所示。但是每当输入参数值为“
<?
”时,ajax调用甚至没有命中服务层中的控制器方法就失败了。但这适用于所有输入值,如“<”、“?”、“<*”等。这仅适用于该输入“
<?
”。在控制器服务方法中,如果我将输入参数值硬编
- android - AndroidX Build Fails in Release Mode 关于 appComponentFactory
- php - laravel Column not found: 1054 Unknown column 'image_likes.gallery_image_id'
- keras - 用于 keras 训练实验的测试的 val_loss(比 train loss)要高得多
- nginx - NGINX/JENKINS:您的反向代理设置似乎已损坏
- atom-editor - 在 atom 编辑器中打开并编辑 winscp 文件夹