使用mongoose在nodejs中连接多个mongo db数据库

gudnpqoy  于 2023-06-23  发布在  Go
关注(0)|答案(2)|浏览(181)

我在node js中使用mongoose进行mongo db连接。谁能告诉我如何在node js中连接多个数据库。另外,请确保您自己已经尝试过这种方法。谢谢
编辑:我想动态连接到多个DB。我也不想多个模型,我只有一个项目,而不是各种子项目。

kulphzqa

kulphzqa1#

我相信你是从主入口点连接到mongoDB,作为index.js或server.js,在那里你启动路由器。像这样`

const mongoose = require('mongoose')
    // mongoose
    mongoose.connect("mongoDB url");
    const connection = mongoose.connection;
    connection.on('open',()=>{
        console.log(" database connected")
    })
    connection.on('error',()=>{
        console.log("error in connecting to database")
    })
    app.use(morgan('dev'));
    app.use(bodyParser.urlencoded({extended: false}));
    app.use(bodyParser.json());
    //middlewares`

以同样的方式,您也可以直接连接到不同的数据库模式。就像在我的用例中,我想将用户存储在不同的数据库中,并将帖子存储在另一个DB中。在我的app.js中,我将连接到主DB作为正常连接(如上所述),对于用户模式,我将连接到我的用户DB。像这样

const mongoose = require('mongoose');
    const connection = mongoose.createConnection("mongo url ");
    const userSchema = mongoose.Schema({
       name: String,
       date_of_birth: Date
      })
    module.exports = mongoose.model('User', userSchema);

也可以使用mongoose.connect()代替mongoose.createConnection()
希望这对你有帮助。

20jt8wwn

20jt8wwn2#

const mongoose = require('mongoose');
require('dotenv').config()


const makeNewConnection = (uri) => {
    const db = mongoose.createConnection(uri, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
        // useCreateIndex: true
    });

    db.on('error', function (error) {
        console.log(`MongoDB :: connection ${this.name} ${JSON.stringify(error)} - ${new Date().toISOString()}`);
        db.close().catch(() => console.log(`MongoDB :: failed to close connection ${this.name} - ${new Date().toISOString()}`));
    });

    db.on('connected', function () {
        console.log(`MongoDB :: connected ${this.name} - ${new Date().toISOString()}`);
    });

    db.on('disconnected', function () {
        console.log(`MongoDB :: disconnected ${this.name} - ${new Date().toISOString()}`);
    });

    return db;
}

const db_charge_config = process.env.DB_HOST_RECHARGE;
const db_log_config = process.env.DB_HOST;

const Connection_db_charge = makeNewConnection(db_charge_config);
const connection_db_log = makeNewConnection(db_log_config);

module.exports = {
    Connection_db_charge,
    connection_db_log
};`enter code here`

相关问题