我正在嘗試設定一個從第三方 API 執行節點獲取以將資訊發送回客戶端的路由。
我想知道是否可以設定它,以便如果第三方 API 失敗,服務器默認為它發送給客戶端的本地化檔案?
routes.get("/data", async (req: Request, res: Response, next: NextFunction) => {
try {
res.header("Cache-Control", "no-store");
res.header("Content-Type", "application/json");
const data = await fetch("https://api.blahblah.com/files");
const jsndata = await data.json();
const formatData = jsndata.filter((item: { fork: boolean }) => {
return item.fork === false;
});
res.send(formatData);
} catch (err: unknown) {
if (err === 400) {
res.send(JSON.stringify(localData));
} else {
next(err);
}
}
});
uj5u.com熱心網友回復:
檢查Response.ok屬性,如果是false,則使用本地檔案進行回應。
例如
routes.get("/data", async (req, res, next) => {
try {
res.header("Cache-Control", "no-store");
const response = await fetch("https://api.blahblah.com/files");
if (!response.ok) {
return res.json(localData); // respond with local data
}
const jsndata = await response.json();
const formatData = jsndata.filter((item: { fork: boolean }) => {
return item.fork === false;
});
res.json(formatData);
} catch (err: unknown) {
next(err);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491263.html
標籤:表示
