Se ti sei già connesso al database, once
l'evento non si avvierà di nuovo. Il database era già connesso per l'intero processo NodeJs quando è stato connesso a livello globale (al di fuori della funzione).
La chiamata a mongoose.connect('mongodb://localhost/test');
effettua la connessione e la apre.
Quindi, invece di aprirlo ad ogni chiamata di funzione (che sarebbe un modo inefficiente per interagire con MongoDB) connect
immediatamente all'avvio dell'app NodeJs e considera che ci sarà un periodo in cui la connessione potrebbe non essere disponibile (poiché è asincrona) o non avviare l'app (listen
) fino al completamento della connessione (o con un timeout). Con Mongoose, fino a quando non viene stabilita la connessione, tutti i comandi vengono memorizzati nel buffer (ma potrebbe non essere il comportamento desiderato). Puoi usare open
evento se vuoi sapere quando la connessione è completa.
La connessione si trova qui:mongoose.connection
se usi il connect
funzione per creare la connessione.
Una volta aperta la connessione, puoi utilizzarla dal tuo popSingleData
funzione senza usare once
evento e richiamata. C'è un pool di connessioni gestito automaticamente.
Per ulteriori informazioni sulle connessioni, leggi qui .