javascript - 如何在 Node js 中添加延迟加载?
问题描述
const posts = await Post.find().populate("receiver").populate("author")
try {
res.json({
status: true,
message: 'All posts fetched',
data: posts.reverse()
})
这是我将所有帖子发送到前端的代码。但我想在后端添加延迟加载。 后端不能一次性发送所有数据.. 在某个时间间隔后调用 1000 个提要帖子。数据太大,无法通过 api 调用。
解决方案
我看到的第一件事是:你为什么不把你的放await
在try / catch
街区里?
您可以使用skip
和limit
我喜欢这样做:
let page = req.body.page - 1;
let postAmount = 10;
try {
const posts = await Post.find().populate("receiver").populate("author").limit(postAmount).skip(postAmount * page)
res.json({
status: true,
message: 'All posts fetched',
data: posts.reverse()
})
根据您使用的是 GET 还是 POST,您需要向page
API 发送额外的内容。
在第 1 页上,您将看到 10 个帖子。在跳过时,您有 10 乘以 1,即 10,但您不想在第一次获取时跳过 10 个帖子。因此,您需要减去-1
10 乘以 0 为 0,因此您在第一次获取时跳过 0。
推荐阅读
- javascript - 在 X 秒后添加类,然后在 X 秒后连续删除类
- c++ - lambda(参数)中的 const 限定符,用于带有 std::sregex_token_iterator 的 std::transform
- reactjs - 如何使用道具形成图像网址
- python - 如何使用颜色图并在使用 matplotlib 的堆叠条上为某个值指定特定颜色
- vb.net - 在 Vb.net 列表框上显示 Renci.ssh.net cmd 的输出
- r - 在ggplot2中按两个变量分组
- c# - C#中的重写方法
- .net - 如何检查 azure 资源是否可用(上/下)
- javascript - 当我调用函数时,它给了我错误。为什么?
- node.js - 我可以向大量 webSocket 客户端广播吗