Монгузское соединение / модели: нужно всегда работать на открытом airе?

Я использую 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() ? Он работает на данный момент, но может быть, потому что он достаточно быстро.

Mongoose буферизует команды до тех пор, пока не будет завершено соединение, поэтому вы можете относиться к нему так, как будто это синхронно, и определить ваши модели и начать использовать библиотеку, когда захотите; только после того, как вы хотите начать фактически вставлять или извлекать данные, вам необходимо установить соединение.