【发布时间】:2021-08-15 22:48:32
【问题描述】:
有什么方法可以每秒用 SSR(getServerSideProps) 在 NextJS 中获取 API 数据? 这样客户端就会每秒钟向服务器发出一个请求,以获取最新的 API 数据。
有什么想法吗?
export const getServerSideProps = async () => {
const res = await fetch(
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&sparkline=false"
);
const filteredCoins = await res.json();
return {
props: {
filteredCoins,
},
};
};
编辑:
这是在我的 index.js 文件中。
我仍然需要从组件中返回filteredCoins。
EDIT2:
所以我尝试了这个:
setInterval(() => {
async function fetchCoins() {
const res = await fetch("http://localhost:3000/api/v1/coindata");
const filteredCoins = await res.json();
return {
filteredCoins,
};
}
}, 1000);
有了这个 api 路由:
export default async function coindata(req, res) {
const apiData = await fetchData();
res.status(200).json({ data: apiData });
}
async function fetchData() {
const resp = await fetch(
"https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=100&page=1&sparkline=false"
);
const data = resp.json();
return data;
}
【问题讨论】:
-
为什么不使用 Websockets?)我怀疑你需要这个数据服务器端
标签: reactjs api get fetch next.js