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

时间:2012-08-11 00:29:51

标签: node.js mongodb mongoose express

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

conn = mongoose.createConnection(...)
conn.on("open", ...)

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

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?

我想我在Node文档的某个地方读到模块无法在回调中定义?


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

mongoose.connect ...

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

1 个答案:

答案 0 :(得分:16)

Mongoose缓冲命令直到完成连接,因此您可以将其视为同步并定义模型并随时开始使用库;只有在您想要开始实际插入或检索数据时才需要进行连接。