我在node js中使用mongoose进行mongo db连接。谁能告诉我如何在node js中连接多个数据库。另外,请确保您自己已经尝试过这种方法。谢谢编辑:我想动态连接到多个DB。我也不想多个模型,我只有一个项目,而不是各种子项目。
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()希望这对你有帮助。
mongoose.connect()
mongoose.createConnection()
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`
2条答案
按热度按时间kulphzqa1#
我相信你是从主入口点连接到mongoDB,作为index.js或server.js,在那里你启动路由器。像这样`
以同样的方式,您也可以直接连接到不同的数据库模式。就像在我的用例中,我想将用户存储在不同的数据库中,并将帖子存储在另一个DB中。在我的app.js中,我将连接到主DB作为正常连接(如上所述),对于用户模式,我将连接到我的用户DB。像这样
也可以使用
mongoose.connect()
代替mongoose.createConnection()
希望这对你有帮助。
20jt8wwn2#