猫鼬连接/型号:需要一直运行吗?

Jie*_*eng 6 mongoose mongodb node.js express

我使用的是Mongoose 3,最明显的方法是连接到数据库

conn = mongoose.createConnection(...)
conn.on("open", ...)
Run Code Online (Sandbox Code Playgroud)

问题是,我是否需要在开放回调中定义所有模型?如果是这样,我将不得不创建一个initMongoose.coffee看起来像

# initMongoose.coffee

mongoose = require "mongoose"
module.exports = mongoose.createConnection ...

# modelExample.coffee

conn = require "./initDatabase"
conn.on "open", -> 
    ... define model?
    modeule.exports = model # I think this does not work?
Run Code Online (Sandbox Code Playgroud)

我想我在Node文档中的哪个地方读过模块不能像这样的回调中定义?


由于我只使用1个连接,我想我可以使用

mongoose.connect ...
Run Code Online (Sandbox Code Playgroud)

哪个不接受任何回调,所以我认为是同步的?我可以定义所有模型,然后立即查询connect()吗?它目前有效,但可能是因为它足够快.

Mic*_*ley 16

猫鼬的缓冲区,直到它完成连接,这样你就可以像它的同步治疗,并定义模式,并开始使用该库,只要你想命令; 只有在您想要开始实际插入或检索数据时才需要进行连接.