Du bør oprette din forbindelse én gang og bruge den i alle behandlere.
Lige nu er det, du gør, at genoprette forbindelsen til databasen på hver enkelt anmodning, selv på de anmodninger, der slet ikke bruger databasen. Desuden ringer du til next() før du overhovedet venter på, at forbindelsen bliver etableret.
Databaseforbindelser er beregnet til at være vedvarende - ikke engangsting, så du vil sandsynligvis få meget dårlige resultater med din tilgang, og jeg er ikke engang sikker på, hvorfor du ønsker at gøre det. Har du haft problemer med en enkelt forbindelse? Jeg tror ikke, det ville hjælpe at hamre på din database på den måde. Hvis noget, kan det kun gøre tingene værre.
Når du opretter forbindelse til Mongo med den oprindeligeMongoDB Node.js-driver der er nogle muligheder, du kan bruge, såsom:
poolSize
- Indstil den maksimale poolstørrelse for hver enkelt server eller proxyforbindelse (standard er5
)autoReconnect
- Genopret forbindelse ved fejl (standard ertrue
)
Nogle andre interessante muligheder er:reconnectTries
, reconnectInterval
, keepAlive
, connectTimeoutMS
, socketTimeoutMS
.
Du kan ændre værdierne for disse muligheder, hvis du ikke er tilfreds med standardindstillingerne.
For mere info se:
- Forbindelsesfejl og genforsøg
- MongoClient eller hvordan man forbinder i en ny og bedre måde
- Selvstudier/Opret forbindelse til MongoDB
- Reference / Forbindelsesmuligheder / Forbindelsesindstillinger
- Spørgsmål om node.js mongo driver auto-genopret forbindelse (mailingliste)