J'ai une application node.js que je veux utiliser pour vérifier si un site particulier est en place et renvoyer le code de réponse approprié. Je veux pouvoir détecter les erreurs qui surviennent lorsque le nom de domaine ne se résout pas ou que la demande expire. Le problème est que ces erreurs font que Node se cache. Je suis novice dans cette méthodologie de programmation asynchrone, donc je ne sais pas où placer mes instructions try/catch.Comment faire pour attraper des exceptions de requête client http dans node.js
J'ai un appel ajax qui va à quelque chose comme/check/site1. Côté serveur qui appelle une fonction qui tente de se connecter puis retourne le statusCode. C'est une fonction très simple, et j'ai enveloppé chaque ligne dans un try/catch et ça n'attrape jamais rien. Ici, il est:
function checkSite(url){
var site = http.createClient(80, url);
var request = site.request('GET', '/', {'host': url});
request.end();
return request;
}
Même avec chacune de ces lignes enveloppées dans un try/catch, je vais quand même obtenir des exceptions non rattrapées comme EHOSTUNREACH et ainsi de suite. Je veux être en mesure d'attraper ceux-ci et de le renvoyer à l'appel ajax.
Des recommandations sur quoi essayer ensuite?
plus informative. Répondre. Déjà. Ce que vous avez recommandé, c'est comment je l'ai actuellement configuré, mais ce n'est pas une option car je vais vérifier plusieurs sites et j'ai besoin des réponses pour chacun. Je vais regarder dans d'autres routes pour le moment jusqu'à ce qu'une meilleure gestion des exceptions soit ajoutée. C'est vraiment dommage que ces types d'erreurs soient simplement laissés flotter vers le haut. – mattmcmanus
Eh bien, comme je l'ai dit dans la deuxième partie de ma réponse, il n'y a aucun moyen de l'attraper ATM. Si vous en avez vraiment besoin, fourchez le nœud et ajoutez-le, puis faites une demande de pull. Vous n'aurez pas de chance sur le problème de traqueur seulement des accidents et tels attirer l'attention là-bas. –
Je voudrais pouvoir le fourrer et ajouter cette fonctionnalité mais je ne saurais même pas par où commencer. – mattmcmanus