Как перехватывать исключения HTTP-запросов клиента в node.js

У меня есть приложение node.js, которое я хочу использовать, чтобы проверить, работает ли конкретный сайт и вернуть правильный код ответа. Я хочу иметь возможность обнаруживать любые ошибки, возникающие из-за того, что доменное имя не разрешается или время ожидания запроса истекло. Проблема в том, что из-за этих ошибок Node отказывает. Я новичок в этой методологии асинхронного программирования, поэтому я не уверен, где разместить свои операторы try / catch.

У меня есть вызов ajax, который ведет к чему-то вроде / check / site1. Сторона сервера, которая вызывает функцию, которая пытается установить соединение, а затем возвращает statusCode. Это очень простая функция, я заключил каждую строку в команду try / catch, и она ничего не улавливает. Вот он:

function checkSite(url){
    var site = http.createClient(80, url);
    var request = site.request('GET', '/', {'host': url});
    request.end();
    return request;
  }

Даже если каждая из этих строк заключена в команду try / catch, я все равно буду получать неперехваченные исключения, такие как EHOSTUNREACH и т. Д. Я хочу иметь возможность перехватывать их и возвращать их в вызов ajax.

Есть ли рекомендации, что попробовать дальше?

38
задан mattmcmanus 8 March 2016 в 20:16
поделиться