Vous devez établir votre connexion une seule fois et l'utiliser dans tous les gestionnaires.
À l'heure actuelle, vous vous reconnectez à la base de données à chaque requête, même pour les requêtes qui n'utilisent pas du tout la base de données. De plus, vous appelez next() avant même d'attendre que la connexion soit établie.
Les connexions à la base de données sont censées être persistantes - pas des choses ponctuelles, donc vous obtiendrez probablement de très mauvaises performances avec votre approche et je ne sais même pas pourquoi voudriez-vous faire cela. Avez-vous eu des problèmes avec une seule connexion ? Je ne pense pas que marteler votre base de données comme ça aiderait. Au contraire, cela ne peut qu'empirer les choses.
Lorsque vous vous connectez à Mongo avec le pilote natifMongoDB Node.js vous pouvez utiliser certaines options, telles que :
poolSize
- Définissez la poolSize maximale pour chaque serveur individuel ou connexion proxy (la valeur par défaut est5
)autoReconnect
- Se reconnecter en cas d'erreur (la valeur par défaut esttrue
)
Quelques autres options intéressantes sont :reconnectTries
, reconnectInterval
, keepAlive
, connectTimeoutMS
, socketTimeoutMS
.
Vous pouvez modifier les valeurs de ces options si vous n'êtes pas satisfait des valeurs par défaut.
Pour plus d'informations, voir :
- Échecs de connexion et tentatives
- MongoClient ou comment se connecter dans un nouveau et meilleur chemin
- Tutoriels / Se connecter à MongoDB
- Référence/Options de connexion/Paramètres de connexion
- Question sur la reconnexion automatique du pilote node.js mongo (liste de diffusion)