Я пишу маршрут, который проверяет, подключено ли системное приложение к сети, а затем отвечает клиенту простым ок 200 статусом или статусом 404.
Я использую экспресс и запрос для вызова API.
Маршрут выглядит так:
app.get('/status/keymgr', async (req, res, next) => {
try{
var endpoint = `http://${config.KeyManager.host}:${config.KeyManager.adminPort}/healthcheck`;
console.log(endpoint);
await request.get(endpoint, function(err, response, body){
if (!err && response.statusCode == 200){
res.send('OK');
}else{
res.status(404);
}
}).end();
}catch(error){
res.status(404);
}finally{
next();
}
});
По какой-то причине я получаю следующую ошибку:
uncaughtException: невозможно установить заголовки после их отправки.
Я предполагаю, что какой-то ответ отправляется в браузер до того, как маршрут запускает res.send()
или res.status()
.
Я не могу понять, что здесь не так. Есть идеи ??