Conexión de mongoose / modelos: ¿Necesitas correr siempre en abierto?

Estoy usando Mongoose 3 y la forma más obvia de conectarme a la base de datos es

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

La pregunta es, ¿necesito definir todos mis modelos en la callback abierta? Si es así, tendré que crear un initMongoose.coffee que se parece a

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

Creo que leí en algún lugar de los documentos de Node que los módulos no se pueden definir en una callback como esa.


Ya que solo estoy usando 1 conexión, creo que puedo usar

 mongoose.connect ... 

¿Cuál no acepta devoluciones de llamada, así que supongo que es síncrono? ¿Puedo definir todos mis modelos y, por lo tanto, las consultas inmediatamente después de connect() ? Funciona en este momento, pero podría ser porque es lo suficientemente rápido.

Mongoose almacena los comandos hasta que finaliza la conexión, por lo que puede tratarlos como si fueran sincrónicos y definir sus modelos y comenzar a usar la biblioteca siempre que lo desee; solo una vez que desee comenzar a insertar o recuperar datos, debe hacer la conexión.