MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quelle est la bonne façon de gérer les connexions de mangouste avec express.js ?

Si vous vous êtes déjà connecté à la base de données, le once l'événement ne se déclenchera plus. La base de données était déjà connectée pour l'ensemble du processus NodeJs lorsqu'elle était globalement connectée (en dehors de la fonction).

L'appel à mongoose.connect('mongodb://localhost/test'); établit la connexion et l'ouvre.

Ainsi, au lieu de l'ouvrir à chaque appel de fonction (ce qui serait un moyen inefficace d'interagir avec MongoDB) connect immédiatement au démarrage de l'application NodeJs, et considérez qu'il y aura une période où la connexion ne sera peut-être pas disponible (car elle est asynchrone), ou ne démarrez pas l'application (listen ) jusqu'à ce que la connexion soit établie (ou avec un délai d'attente). Avec Mongoose, jusqu'à ce que la connexion soit établie, toutes les commandes sont mises en mémoire tampon (mais ce n'est peut-être pas le comportement que vous souhaitez). Vous pouvez utiliser le open événement si vous voulez savoir quand la connexion est terminée.

La connexion se trouve ici :mongoose.connection si vous utilisez le connect fonction pour créer la connexion.

Une fois la connexion ouverte, vous pouvez l'utiliser depuis votre popSingleData fonction sans utiliser once événement et rappel. Il y a un pool de connexion automatiquement maintenu.

Pour en savoir plus sur les connexions, lisez ici .