/ / Mongoose connection / models: Precisa sempre ser executado em aberto? - node.js, mongodb, mangusto, expresso

Conexão / modelos do mangusto: Precisa sempre ser executado em aberto? - node.js, mongodb, mangusto, expresso

Eu estou usando o Mongoose 3 e a maneira mais óbvia de se conectar ao banco de dados é

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

Pergunta é, eu preciso definir todos os meus modelos no retorno de chamada aberto? Se for assim, terei que criar um initMongoose.coffee que parece

# 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?

Eu acho que li em algum lugar no Node docs que os módulos não podem ser definidos em um callback assim?


Desde que eu estou usando apenas uma conexão, eu acho que posso usar

mongoose.connect ...

Qual doesnt aceita todos os retornos de chamada assim que eu suponho que é síncrono? Posso definir todos os meus modelos e, assim, consultar logo após connect()? Funciona no momento, mas pode ser porque é rápido o suficiente.

Respostas:

16 para resposta № 1

Mongoose buffers up comandos até que esteja terminadoconectando, para que você possa tratá-lo como ele é síncrono e definir seus modelos e começar a usar a biblioteca sempre que quiser; somente quando você quiser começar a inserir ou recuperar dados de fato, é necessário fazer a conexão.