app.post('/monitoring/restart', async function (req, res) {
let serviceName = req.query.serviceName;
let serviceType = req.query.type;
let serverName = req.query.serverName;
let forwarded = req.query.forwarded;
try {
if (serverName === process.env.SERVER_NAME) {
let result = await restartService(serviceName, serviceType);
res.status(200).json({
success: true,
result,
});
} else if (!forwarded) {
let matchingServer = OTHER_SERVERS.map(server => server.split(':')).find(server => server[0] === serverName);
const response = await axios.post(`http://${matchingServer[1]}:${config.server.port}/monitoring/restart?serviceName=${serviceName}&type=${serviceType}&serverName=${serverName}&forwarded=true`, {});
res.status(200).json(response.data);
} else {
throw new Error('Service already forwarded');
}
} catch (error) {
logger.error({
description: 'Error in restarting service',
error
});
res.status(500).json({
success: false,
error
});
}
});
Поэтому, когда я жду ответа от почтового запроса axios, я получаю ответ от другого сервера, но express не отправляет ответ обратно клиенту с помощью res.json (даже если я отправляю 'hello world' в качестве ответа ). Я получаю ERR_EMPTY_RESPONSE в браузере. Также экспресс-запрос вызывается дважды. Следует отметить, что если я не жду ответа, экспресс может отправить ответ. Я также попытался заменить запрос axios на setTimeout, равный 15 секундам, чтобы проверить, есть ли проблема с тайм-аутом, но это работает. Также заменил axios на библиотеку запросов, но безрезультатно.