У меня есть сервер парусов, который действует как прокси (дляasticsearch).Клиентский сервер (kibana) имеет время ожидания запроса 30 с, когда он вызывает длинный запрос к прокси, который занимает около 50 с, время ожидания истекает, но возникает ошибка socket hang up
на сервере, и он падает.
Я могуувеличить время ожидания клиента (что я не считаю лучшим), но как отловить эту ошибку?
Код прокси выглядит следующим образом:
const request = require('request');
function proxyRequest(req, res, esUrl) {
let esReq = request({
url: esUrl,
method: req.method
});
esReq.on('error', function handleError(err) {
console.log('Got error', err);
res.json(500, {
error: err
});
});
return req.pipe(esReq).pipe(res);
}
Выше error
прослушиватель событий включен esReq
не перехватывает ошибку, я пытался добавить слушателей на req
и res
, но не работает.
Вся ошибка:
Error: socket hang up
at createHangUpError (_http_client.js:253:15)
at Socket.socketOnEnd (_http_client.js:345:23)
at emitNone (events.js:91:20)
at Socket.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
Какпоймать эту ошибку и обработать ее?