mongoose不能自动创建数据库?
我用createConnection创建了数据库链接,也有数据库的映射关系,但是没有自动创建数据库.求解惑。
const db = mongoose.createConnection(config.db, {
poolSize: 20,
bufferCommands: false,
autoReconnect: true,
reconnectTries: 5,
reconnectInterval: 500
});
db.once('connected', async () => {
console.log(db.collections);
logger.info("连接Mongodb数据库成功");
});
db.on('error', (err) => {
logger.error("Error in mongodb connection: ", err);
db.disconnect();
});
db.on('close', () => {
logger.error("数据库连接已断开,尝试重新连接");
db.connect(function () {
logger.info("数据重新连接成功");
});
});
//加载用户模型
const UserSchema = require('./User');
const User = mongoose.model('User', UserSchema);
5 回复
把加载用户模型放在createConnection之前试试
@peasonlee 测试过 也是没有任何反应
@peasonlee 已经在官方GitHub提交了issue,等作者回复太漫长了。。
使用createConnection的话需要将model挂载到你创建的那个connection,也就是你代码中的db,使用db.model取代mongoose.model试试
@Lucky-Leaf 感谢大神,解决了。确实需要挂在到connection上面。官网文档写的不是很清楚。