我使用的是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()
之后立即定义所有模型并进行查询吗?它目前有效,但可能是因为它足够快。
答案 0 :(得分:16)
Mongoose缓冲命令直到完成连接,因此您可以将其视为同步并定义模型并随时开始使用库;只有在您想要开始实际插入或检索数据时才需要进行连接。