Die Verbindung sollte aus folgenden Gründen wiederverwendet werden:
- Das Öffnen und Schließen von DB-Verbindungen bei jeder API-Anfrage ist langsam.
- Es ist kaum skalierbar. Angenommen, Sie stellen ein paar API-Anfragen gleichzeitig pro Benutzer, erreichen Sie das gleiche Verbindungslimit schnell, wenn die App mehr Benutzer erhält.
Wie verwalte ich MongoDB-Verbindungen in einer Node.js-Webanwendung?
Standard-MongoClient
Konfiguration hat eine maximale Anzahl von Verbindungen pro Pool (poolSize
) auf 5
gesetzt . Sie sollten also nicht mehr als ~5 Verbindungen in MongoDB Atlas sehen, wenn Sie nur eine App-Instanz ausführen und prüfen, ob ein Client bereits verbunden ist, wie Sie es tun.
if (!client.isConnected()) {
await client.connect();
}
Beachten Sie, dass Next.js bei jeder Anfrage im Entwicklungsmodus "neu startet" (next dev
) und es scheint, dass es MongoClient
betrifft Cache und erstellt viele Verbindungen. Im Produktionsmodus sollte dieses Problem jedoch nicht auftreten.