De verbinding moet om de volgende redenen opnieuw worden gebruikt:
- Het openen en sluiten van DB-verbindingen bij elk API-verzoek is traag.
- Het is nauwelijks schaalbaar. Ervan uitgaande dat u een paar API-verzoeken tegelijk per gebruiker doet, bereikt u snel dezelfde verbindingslimiet wanneer de app meer gebruikers krijgt.
Hoe beheer ik MongoDB-verbindingen in een Node.js-webtoepassing?
Standaard MongoClient
configuratie heeft een maximum aantal verbindingen per pool (poolSize
) ingesteld op 5
. U zou dus niet meer dan ~5 verbindingen in MongoDB Atlas moeten zien als u slechts één app-instantie heeft en controleert of er al een client is verbonden, zoals u doet.
if (!client.isConnected()) {
await client.connect();
}
Merk op dat Next.js "opnieuw start" bij elk verzoek in de ontwikkelingsmodus (next dev
) en het lijkt erop dat het invloed heeft op MongoClient
cache en maakt veel verbindingen. In de productiemodus zou u dit probleem echter niet moeten ervaren.