在 Express.js 应用程序中打开多个 MongoDB 连接

Posted

技术标签:

【中文标题】在 Express.js 应用程序中打开多个 MongoDB 连接【英文标题】:Open Multiple MongoDB connections in Express.js App 【发布时间】:2021-05-10 07:15:30 【问题描述】:

我的主文件 app.js 已连接到 userDB 我想添加第二个数据库postsDB


const mongoose = require("mongoose");


const app = express();


mongoose.set("useCreateIndex", true);
mongoose.set("useUnifiedTopology", true);

mongoose.connect("mongodb://localhost:27017/userDB", useNewUrlParser: true);


【问题讨论】:

在发布问题之前,我建议搜索堆栈溢出,以防之前被问过。这是一个可能重复的答案:***.com/questions/32906467/… 【参考方案1】:

如果是同一台服务器的多个数据库,可以使用useDb

const userDb = mongoose.connection.useDb('userDB');
const postsDb = mongoose.connection.useDb('postsDB');

只有在你也有充分理由的情况下才这样做,更标准的方法是在同一个数据库中使用多个集合。

如果数据库位于不同的服务器中,您将需要完全使用不同的连接池,这是 mongoose 不支持开箱即用的。您可以使用标准的 mongodb 驱动程序或将您的应用程序拆分为不同的服务,每个服务都有自己的 mongoose 实例和自己的连接。不过,这在同一个 express 应用程序中是非常不寻常的。

【讨论】:

以上是关于在 Express.js 应用程序中打开多个 MongoDB 连接的主要内容,如果未能解决你的问题,请参考以下文章

express.js - 单行中多个路由的单个路由处理程序

使用 connect vhost 为多个 express.js 应用程序提供服务

firebase node.js/express.js 添加多个firebase函数

Express.js - Mongoose 多个或条件

从 node.js/express.js 中的多个异步源构建对象

使用 Express.js 的多个 SSL 证书和 HTTP/2