Node.js学习14~实现翻页或分页查询

x33g5p2x  于2022-05-05 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(319)

实现翻页或分页查询,下面使用node-sequelize模型查询。

findAndCountAll 方法是结合了 findAll 和 count 的便捷方法. 在处理与分页有关的查询时非常有用,在分页中,你想检索带有 limit 和 offset 的数据,但又需要知道与查询匹配的记录总数.

findAndCountAll 方法返回一个具有两个属性的对象:

count - 一个整数 - 符合查询条件的记录总数
rows - 一个数组对象 - 获得的记录
基于如下例子进行改造实现

const { count, rows } = await Project.findAndCountAll({
where: {
title: {
[Op.like]: 'foo%'
}
},
offset: 10,
limit: 2
});
console.log(count);
console.log(rows);

改造后的代码如下:

const pagenum = parseInt(page) || 1;
const pagesize = parseInt(pageSize)  || 10;
const { count, rows } = await Project.findAndCountAll({
where: {
title: {
[Op.like]: '优惠卷%'
}
},
limit: pagesize,
offset:pagenum*pagesize-pagesize,
raw:true
});
console.log(count);
console.log(rows);

其中

limit是每页显示的记录数

offset的公式

((page*limit)-limit)

相关文章