MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Qual è il modo corretto di gestire le connessioni mangusta con express.js?

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 .