mongoose中connect、createConnection的区别和绑定model的方式

connect

因为connect()方法并不能监听数据库连接情况,所以需要connection;

connection是mongoose模块的默认引用,返回一个Connetion对象

mongoose.connect('mongodb:****');
const db = mongoose.connection;
db.on('error', function () {
    console.error('数据库连接错误!');
});
db.once('open', function () {
    console.log('数据库打开成功')
});

createConnection

连接多个数据库使用createConnection 返回一个Connection对象

const db = mongoose.createConnection('mongodb:****');
db.on('error', function () {
    console.error('数据库连接错误!');
});
db.once('open', function () {
    console.log('数据库打开成功')
});

两种连接方式下model的绑定

mongoose.model访问默认连接,当存在多个连接时可能无法按预期工作;当默认连接使用createConnection创建时,mongoose.model绑定失效

const mongoose = require('mongoose');
mongoose.model('consult', consultSchema);

无论哪种连接方式使用Connection去绑定model都是没问题的

const mongoose = require('mongoose');
const db = require('../database/db');
db.model('consult', consultSchema);

你可能感兴趣的:(mongoose)