react,数据库里有20000多条数据,但前端页面只能显示出10条数据,如何修改后端?

后端代码如下:

    // 获取房屋;列表
    houses: async x => {
        x.body = {
            status: 400,
            description: "请求成功",
            body: null
        };
        let {cur_page = 1, page_size = 10, community, userName, disabled, start, end} = x.query;
        let id;
        let where = {};
        if (id) where.userCode = id.ID;
        if (start && end) {
            where.time = {
                [Op.lte]: new Date(end),
                [Op.gte]: new Date(start),
            };
        }
        let houseList = await dataBash.Admin.house({
            where, offset: cur_page, limit: page_size
        });
        x.body.status = 200;
        x.body.body = houseConfig.houseList(houseList);
    }

目前效果是,前端页面显示出10条数据,但数据库里有20000多条数据
请问如何修改才能显示出全部数据?
如果以后数据库的数据不断增加,在不把后端数据量写死的前提下,如何修改才能让其自动以当前总的数据量作为最大值去获取并显示在前端页面?
请在现有代码基础上展示说明,谢谢

img


这两条就好比sql语句中的limit(1,10),所以你想要几条数据就把10改成几就好了

查询的时候不设置offset和limit表示查询所有数据,参考如下:


    // 获取房屋;列表
    houses: async x => {
        x.body = {
            status: 400,
            description: "请求成功",
            body: null
        };
        let {cur_page = 1, page_size = 10, community, userName, disabled, start, end} = x.query;
        let id;
        let where = {};
        if (id) where.userCode = id.ID;
        if (start && end) {
            where.time = {
                [Op.lte]: new Date(end),
                [Op.gte]: new Date(start),
            };
        }
        // 查询的时候不设置offset和limin表示查询所有数据
        let houseList = await dataBash.Admin.house({
            where
        });
        x.body.status = 200;
        x.body.body = houseConfig.houseList(houseList);
    }
 

也可以将page_size设置为获取的最大数量,但是这样有点多此一举了,可参考:


    // 获取房屋;列表
    houses: async x => {
        x.body = {
            status: 400,
            description: "请求成功",
            body: null
        };
        let {cur_page = 1, page_size = 10, community, userName, disabled, start, end} = x.query;
        let id;
        let where = {};
        if (id) where.userCode = id.ID;
        if (start && end) {
            where.time = {
                [Op.lte]: new Date(end),
                [Op.gte]: new Date(start),
            };
        }
        // 此处可换成获取count的接口调用
        let maxList = await dataBash.Admin.house({where});
        page_size = count(maxList);
        let houseList = await dataBash.Admin.house({
            where, offset: cur_page, limit: page_size
        });
        x.body.status = 200;
        x.body.body = houseConfig.houseList(houseList);
    }
 

这有必要全部取出来吗,只需要前端再次请求下一页的数据进行渲染就可以了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^