La connessione deve essere riutilizzata per i seguenti motivi:
- L'apertura e la chiusura delle connessioni DB su ogni richiesta API è lenta.
- Difficilmente è scalabile. Supponendo che tu stia effettuando alcune richieste API contemporaneamente per utente, raggiungerai rapidamente lo stesso limite di connessioni quando l'app riceve più utenti.
Come faccio a gestire le connessioni MongoDB in un'applicazione web Node.js?
MongoClient
predefinito la configurazione ha il numero massimo di connessioni per pool (poolSize
) impostato su 5
. Quindi, non dovresti vedere più di circa 5 connessioni in MongoDB Atlas se hai solo un'istanza dell'app in esecuzione e controlla se un client è già connesso, come fai tu.
if (!client.isConnected()) {
await client.connect();
}
Nota che Next.js "riavvia" ad ogni richiesta nella modalità di sviluppo (next dev
) e sembra che influisca su MongoClient
cache e crea molte connessioni. Tuttavia, in modalità di produzione, non dovresti riscontrare questo problema.