2012-08-11 13 views
6

Sto usando Mongoose 3 e il modo più ovvio per la connessione al database èConnessione/modelli Mongoose: è necessario eseguire sempre l'apertura?

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

domanda è: ho bisogno di definire tutti i miei modelli nella richiamata aperta? Se le cose stanno così, dovrò creare un initMongoose.coffee che assomiglia

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

Penso che ho letto da qualche parte in documenti nodo che i moduli non possono essere definiti in un callback del genere?


Dal momento che sto usando solo 1 collegamento, credo di poter utilizzare

mongoose.connect ... 

Quali doesnt accetta qualsiasi callback quindi suppongo che è sincrona? Posso definire tutti i miei modelli e quindi le domande subito dopo connect()? Funziona al momento, ma potrebbe essere perché è abbastanza veloce.

+0

Grazie per avermi fatto la domanda. Vedo ogni sorta di esempio non inserendolo nella richiamata ed ero sconcertato! Inoltre mi chiedevo come avrei strutturato il programma se dovessi metterlo in callback. – huggie

risposta

16

Manomina i comandi fino al termine della connessione, in modo da poterlo trattare come se fosse sincrono e definire i modelli e iniziare a utilizzare la libreria ogni volta che lo si desidera; solo una volta che si desidera iniziare effettivamente l'inserimento o il recupero dei dati, è necessario effettuare la connessione.

+0

Erm la tua seconda parte sembra contraddire il 1 °. Quindi, posso definire i modelli subito dopo la connessione, ma posso fare lo stesso con gli inserti? –

+0

Sì; il punto è che, mentre la connessione è asincrona, non è necessario trattarla in questo modo, poichè Mangusta rileverà che non ha finito di connettere e bufferizzare gli inserimenti fino a quando non è terminato. –

+0

@MichelleTilley fonte? – CodyBugstein

Problemi correlati