首页 > 解决方案 > 如何在 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 调用。

标签: javascriptnode.jsmongodblazy-loading

解决方案


我看到的第一件事是:你为什么不把你的放await​​在try / catch街区里?

您可以使用skiplimit

我喜欢这样做:

    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,您需要向pageAPI 发送额外的内容。

在第 1 页上,您将看到 10 个帖子。在跳过时,您有 10 乘以 1,即 10,但您不想在第一次获取时跳过 10 个帖子。因此,您需要减去-110 乘以 0 为 0,因此您在第一次获取时跳过 0。


推荐阅读