后端代码如下:
// 获取房屋;列表
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多条数据
请问如何修改才能显示出全部数据?
如果以后数据库的数据不断增加,在不把后端数据量写死的前提下,如何修改才能让其自动以当前总的数据量作为最大值去获取并显示在前端页面?
请在现有代码基础上展示说明,谢谢
查询的时候不设置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);
}
这有必要全部取出来吗,只需要前端再次请求下一页的数据进行渲染就可以了
不知道你这个问题是否已经解决, 如果还没有解决的话: