React项目API请求极慢排查求助(Chrome直接访问后端API正常)
React项目API请求极慢排查求助(Chrome直接访问后端API正常)
最近开发React项目时碰到个特别头疼的问题:前端调用API接口要20多秒才能拿到响应,但直接在Chrome地址栏打开这个API的URL,瞬间就能看到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(); }, []);
另外我在代码里加了好几次localStorage.clear(),因为之前发现不加的话请求好像没法正常触发,这会不会也和请求慢的问题有关?
补充一下后端处理获取帖子的接口代码:
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条帖子而已,数据量很小,但React里请求要花25秒,Chrome直接访问却瞬间加载完成,实在搞不懂问题出在哪,求各位大佬指点!
备注:内容来源于stack exchange,提问作者samurai
相关产品推荐
相关产品推荐

