Есть ли причина, по которой вы не можете выполнить запрос GET изнутри Express. js router.put ()?
У меня есть два маршрута. Точно такой же вызов API работает в маршруте router.get () и зависает в router.put ().
Я подтвердил, что
Это работает:
router.get('/:id', async (req, res) => {
const { headers } = req;
let result;
try {
result = await axios({ method:'get', url: '/some-url', headers });
} catch(error) {
res.status(500).send(new Error('myError');
}
res.send({ result });
});
Это НЕ работает:
router.put('/:id', async (req, res) => {
const { headers } = req;
let result;
let finalResult;
try {
result = await axios({ method:'get', url: '/some-url', headers });
} catch(error) {
res.status(500).send(new Error('myError');
}
// logic based on the result of the above GET determines what the value of `finalResult`
finalResult = { some: 'data' };
res.send({ finalResult });
});
Даже если axios({ method:'get', url: '/some-url' })
одинаково для обоих маршрутов, оно работает в одном, а не в другом.
Маршрут router.put()
всегда зависает на долгое время и в итоге Node выдает: Error: socket hang up, code: 'ECONNRESET', etc...
Цени любую помощь, я потратил целый день, ломая голову над этим.