Мангуст соединение / модели: нужно всегда работать на открытом?
я использую Мангуст 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?
Я думаю, что читал где-то в узловых документах, что модули не могут быть определены в обратном вызове?
поскольку я использую только 1 соединение, я думаю, что могу использовать
mongoose.connect ...
, который не принимает любые обратные вызовы, я полагаю, синхронны? Могу ли я определить все мои модели и, следовательно, запросы сразу после connect()
? Он работает на данный момент, но это может быть потому, что его достаточно быстро.
1 ответов
Мангуст буферизует команды до тех пор, пока он не закончит подключение, поэтому вы можете рассматривать его как синхронный и определять свои модели и начинать использовать библиотеку, когда захотите; только после того, как вы хотите начать фактически вставлять или извлекать данные, вам нужно сделать соединение.