2013-06-30 5 views
0

Я успешно написал приложение в node.js, работающем с http.get. Проблема в том, что если страница не существует, она делает ошибку, которая завершает работу приложения. Есть ли способ объявить тайм-аут. После таймаута он должен прекратить ждать ответа и продолжить приложение (если он синхронно написан) Спасибо за все советы ...Node.js http.get 404 убивает приложение

+0

обрабатывать ошибку, давая '.На ('ошибка', функция (е) {});' См HTTP: //nodejs.org/api/http.html#http_http_get_options_callback – user568109

ответ

0

Я отвечаю, думая, что вы пытаетесь получить информацию через http.get.

  1. Вы можете увидеть подтверждение, используя код состояния ответа.

    http.get(url, function(res) { 
        if (res.statusCode !== 200) { 
         Your custom handler 
        } else { 
         var body = ''; 
    
         res.on('data', function(chunk) { 
          body += chunk; 
         }); 
    
         res.on('end', function() { 
          console.log(body); 
         }); 
        } 
    }).on('error', function(e) { 
    console.log("error: ", e); 
    }); 
    

    Полностью реализован пример можно найти ее https://gist.github.com/pasupulaphani/9630789

  2. Вы можете установить тайм-аут и генерировать ошибку/прервать, если запрос занимает слишком много времени, но это должно быть сделано в логике приложения.

    Найдено лучше/сложное решение для обработки тайм-аута в другой пост: https://stackoverflow.com/a/12815321/2073176