mongoose不能自动创建数据库?
发布于 7 年前 作者 Jinshihao 5272 次浏览 来自 问答

我用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上面。官网文档写的不是很清楚。

回到顶部