В настоящее время я использую Node.js для извлечения данных API и преобразования их в свой собственный сервер API Express.js для отправки своих собственных данных (2 API, которые я использую, иногда меняют структуру, и у меня есть некоторые пользователи, которыенужно сохранить ту же структуру).
Так вот код, который я использую
app.get('/app/account/:accountid', function (req, res) {
return fetch('https://server1.com/api/account/' + req.params.accountid)
.then(function (res) {
var contentType = res.headers.get("content-type");
if (contentType && contentType.includes("application/json")) {
apiServer = 'server1';
return res.json();
} else {
apiServer = 'server2';
throw "server1 did not reply properly";
}
}).then(server1Reconstruct).then(function (json) {
res.setHeader('Content-Type', 'application/json');
return res.send(json);
}).catch(function (err) {
console.log(err);
}).then(function () {
if (apiServer == 'server2') {
server2.fetchAccount({
accountID: [Number(req.params.accountid)],
language: "eng_us"
})
.then(server2Reconstruct)
.then(function (json) {
res.setHeader('Content-Type', 'application/json');
return res.send(json);
}).catch(function (err) {
console.log(err);
});
}
});
})
Чтобы быстро объяснить код: я вызываю server1 через обычную Fetch, этот ответ может быть {}, и именно здесь у меня проблема.Если accountid не существует, сервер возвращает ответ JSON без ошибок, чтобы захватить ...
Что мне нужно сделать, чтобы его перехватить ... И если я поймаю его, переключитесь на сервер 2.
(Не смущайтесь вызовом server2, поскольку это другой пакет).