猫鼬多连接与 Fastify

问题描述

我正在尝试通过 mongoose 在 fastify 中使用多个数据库连接。

对于单个数据库代码看起来像

const mongoose = require('mongoose');
const fastifyPlugin = require('fastify-plugin')
mongoose.Promise = Promise; // Set mongoose to use ES6 Promises.
const reconnectTimeout = 5000; // ms.
const db = mongoose.connection;

async function dbConnector1(fastify,options) {
    const conn1 = mongoose.connect("mongodb://localhost/db1",{
        useNewUrlParser: true,useUnifiedTopology: true,retryWrites: false
    })
        .then(() => console.log( 'Connection to DB1 successful'))
        .catch((err) => console.error(err));
};

module.exports = fastifyPlugin(dbConnector1,{
    name: 'DB1'
})

我已经把上面的代码放在了 conn1.js 我在 conn2.js 和 index.js 中与不同的 db 创建了类似的连接,我正在按如下方式注册 db 插件

        await fastify.register(require('./src/db/conn1'))
        await fastify.register(require('./src/db/conn2'))

我收到以下错误 -

MongooseError:无法在具有不同连接字符串的活动连接上调用 openUri()。确保您没有多次调用 mongoose.connect()。请参阅:https://mongoosejs.com/docs/connections.html#multiple_connections

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...