CNode

mongoose不能自动创建数据库?

问答
JJinshihao发布于8 年前最后回复8 年前5 回复5895 浏览0 收藏

我用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)

P
peasonlee#1·8 年前

把加载用户模型放在createConnection之前试试

J
Jinshihao#2·8 年前
引用 peasonlee把加载用户模型放在createConnection之前试试

@peasonlee 测试过 也是没有任何反应

J
Jinshihao#3·8 年前
引用 peasonlee把加载用户模型放在createConnection之前试试

@peasonlee 已经在官方GitHub提交了issue,等作者回复太漫长了。。

L
lucky-leaf#4·8 年前

使用createConnection的话需要将model挂载到你创建的那个connection,也就是你代码中的db,使用db.model取代mongoose.model试试

J
Jinshihao#5·8 年前
引用 lucky-leaf使用createConnection的话需要将model挂载到你创建的那个connection,也就是你代码中的db,使用db.model取代mongoose.model试试

@Lucky-Leaf 感谢大神,解决了。确实需要挂在到connection上面。官网文档写的不是很清楚。

参与回复
登录后即可参与回复。登录