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 .