Comment vérifier si connexion MongoDB est vivant dans Node.js
J'ai une application avec MongoDB comme backend. Lorsque l'application est démarrée, j'ai configuré la connexion et l'utiliser plus tard sur demande.
Mais si dans le même temps ma db conncetion échoue (c'est à dire. mongod se bloque), comment puis-je vérifier que sur le temps de la demande?
De clarifier un peu:
- actuellement, j'ai un "api.js" qui ne
db.once('open', function../* setup */)
- sur demande, je ne
db.find(conditions, function(err, res) { if (err) ...else ...})
.
Ce que je veux faire est de vérifier si la connexion est en vie avant la db.find()
clause. Donc, si il est en panne, je peux essayer de redémarrer la connexion db.
P. S. je sais, je devrais probablement une sorte de pool de connexion ou semblable au lieu de garder la connexion active tout le temps, mais pour l'instant il est comme il est.
Ok, en supposant que le moyen le plus rapide à détecter une erreur dans le cadre de l'état serait de tenter en premier lieu de l'opération et de réessayer de l'échec (stackoverflow.com/questions/8936922/...) quelle serait la façon la plus élégante pour encapsuler que réessayer, pensez-vous?
OriginalL'auteur Zlatko | 2013-07-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser l'événement à traiter en tant que rappel.
Et peut-être avoir votre variable globale qui permettra d'identifier qu'il n'est pas connecté.
Vous pouvez séparer les
db.js
fichier, qui fonctionne en tant que module. Et vous pouvez avoir la fonction pour obtenir de la collection.Afin de l'utiliser:
Désolé, juste remarqué que vous êtes en utilisant de la Mangouste, qui peuvent être légèrement différentes.
J'ai mis à jour la réponse, y compris plus de solution fiable.
Je ne vois pas en quoi cela répond à la question à tous. Vous obtenez un message d'erreur. Cette erreur peut avoir été pour un certain nombre de choses, pas toutes appel à la connexion.
OriginalL'auteur moka