我想獲取所有人/電影/等。來自 SWAPI。
在最終得到可用的東西之前,我嘗試了很多東西。但是,它只顯示前 10 個人(在人員情況下)
const express = require("express");
const router = express.Router();
const axios = require("axios");
router.get("/people", (req, res) => {
axios
.get("https://swapi.dev/api/people/?format=json")
.then((data) => {
return res.send(data.data.results);
})
.catch((error) => {
console.log("error: ", error);
});
});
module.exports = router;
由于 Stack Overflow 的大量搜索,我嘗試過的是:
const express = require("express");
const router = express.Router();
const axios = require("axios");
router.get("/people", async (req, res) => {
let nextPage = `https://swapi.dev/api/people/`;
let people = [];
while (nextPage) {
res = await axios(nextPage)
const { next, results } = await res.data;
nextPage = next
people = [...people, ...results]
}
console.log(people.length) // 82
console.log(people) // shows what I wanted, all people !
return people;
});
module.exports = router;
啟動服務器時,頁面沒有完成加載(此時它仍在加載),但 console.log 成功地顯示了我想要的內容。
那么,我怎樣才能設法在頁面中顯示它呢?
我的目標是將該路由用于來自 React 前端的 axios API 呼叫(搜索特定名稱)
uj5u.com熱心網友回復:
不要覆寫res代碼中的并以以下方式完成res.send:
let nextPage = `https://swapi.dev/api/people/`;
let people = [];
while (nextPage) {
let nextres = await axios(nextPage)
const { next, results } = await nextres.data;
nextPage = next
people = [...people, ...results]
}
console.log(people.length) // 82
console.log(people) // shows what I wanted, all people !
res.send(people);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456753.html
