Du bör göra din anslutning en gång och använda den i alla hanterare.
Just nu är det du gör att återansluta till databasen på varje enskild begäran, även på de förfrågningar som inte använder databasen alls. Dessutom ringer du next() innan du ens väntar på att anslutningen ska upprättas.
Databasanslutningar är avsedda att vara beständiga - inte engångssaker, så du kommer sannolikt att få mycket dålig prestanda med ditt tillvägagångssätt och jag är inte ens säker på varför du skulle vilja göra det. Har du haft några problem med en enda anslutning? Jag tror inte att det skulle hjälpa att hamra på din databas så. Om något kan det bara göra saken värre.
När du ansluter till Mongo med den inföddaMongoDB Node.js-drivrutinen det finns några alternativ som du kan använda, som:
poolSize
- Ställ in maximal poolstorlek för varje enskild server eller proxyanslutning (standard är5
)autoReconnect
- Återanslut vid fel (standard ärtrue
)
Några andra intressanta alternativ är:reconnectTries
, reconnectInterval
, keepAlive
, connectTimeoutMS
, socketTimeoutMS
.
Du kan ändra värdena för dessa alternativ om du inte är nöjd med standardinställningarna.
För mer information se:
- Anslutningsfel och återförsök
- MongoClient eller hur du ansluter i en ny och bättre sätt
- Självstudier / Anslut till MongoDB
- Referens / Anslutningsalternativ / Anslutningsinställningar
- Fråga om node.js mongo-drivrutin automatisk återanslutning (e-postlista)