6

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

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

问题是,我是否需要在 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()吗?它目前有效,但可能是因为它足够快。

4

1 回答 1

16

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

于 2012-08-11T00:48:01.460 回答