В некоторых случаях, когда на мой узел / экспресс-сервер попадает определенный маршрут, я хотел бы сделать запрос к API и вернуть этот ответ непосредственно клиенту.Я следовал за этим сообщением переполнения стека: Отправка ответа от серверного запроса axios в приложение React / Redux
Чтобы создать это:
router.use('/', async (req, res) => {
const apiUrl = `https://assets.scratch.mit.edu${req.url}`;
console.log(apiUrl);
const scratchResponse = await axios.get(apiUrl);
try {
res.send(scratchResponse);
console.log('worked!', apiUrl);
} catch (error) {
console.log('error in assets get request', apiUrl, error);
res.sendStatus(500);
}
});
Это работает для некоторых иззапросы, но перерывы для других с ошибкой:
TypeError: Converting circular structure to JSON
В соответствии с предложениями из этого сообщения о переполнении стека: JSON.stringify, избегайте TypeError: Преобразование круговой структуры в JSON
Я пытался использовать библиотеку npm flatted
, добавив этот импорт:
const { stringify } = require('flatted/cjs');
и приведя в строку перед моим ответом:
res.send(stringify(scratchResponse));
Но похоже, что некоторая информацияудалено, что критично для клиента (клиент ломается и говорит, что ему не хватает свойств).
Можно ли напрямую отправить ответ, который я получаю от API?