获取API是非常慢(也许20秒响应),但api后端并不慢,当我打开它从chrome和我看到json文件。我想知道我的代码中可能有问题
这就是我想要获取API的方式。我是否应该在其中添加更多选项以正常工作?
我的代码中缺少了什么。
const fetchPosts = async () => {
setisLoading(true)
try {
localStorage.clear();
const res = await fetch(`${process.env.BASE_URL}/posts?limit=6`
,
{
method: "GET",
headers: { 'Cache-Control': 'no-store', "Content-Type": "application/json" }
}
);
localStorage.clear();
const data = await res.json();
setposts(data);
// console.log(data);
} catch (e) {
console.error(e);
}
setisLoading(false);
}
useEffect(() => {
localStorage.clear();
fetchPosts();
}, []);
public void println();我的代码,因为它不取,如果我不添加..
编辑:
这是与getposts相关的后端代码
const getPosts = async (req, res) => {
const { userId } = req.params;
const limitValue = req.query.limit || 500;
const skipValue = req.query.skip || 0;
const posts = await Post.find(userId ? { bookmarks: userId } : {})
.sort({ createdAt: -1 })
.populate("author")
.populate("tags")
.skip(skipValue)
.limit(limitValue)
if (!posts) res.status(204).json("No posts found");
else {
res.status(200).json(posts.map((post) => post.toObject({ getters: true })));
}
};
我只收集了前8个帖子。只有8个,数据库中8个帖子花了25秒。但在谷歌Chrome浏览器中,它会立即打开,但在我的React应用程序中,需要25秒才能获取
1条答案
按热度按时间afdcj2ne1#
你必须使用分页每个请求结果包含10行以上,然后它需要时间
url必须像例如第一页https://api/x?limit=10&skip=1 for page 2 https://api/x?limit=10&skip=2,等等