node之blog实战15(用户列表分页原理+实现)
本节介绍下用户列表分页的原理和实现
主要依赖MongoDB的limit和skip方法
(1)先用limit实现分页
语法User,find().limit()
例如想实现每页6条数据,则如下所示

此时结果如下

接下来做下分析

(2)跳跃忽略条数配置

接下来可以修改page当前页,刷新页面,查看数据是否换页正确
(3)实现分页读取
分析,最终想要的格式为
,切换到第二页,通过get的query获取参数。如下所示,默认page为1,如果未传参则为1

测试后如下

(4)添加上下页按钮


分析:点击上一页往前走,点击下一页网后走,所以必须知道当前是第几页。将当前页page传递到模板渲染处


测试如下:

此时便可以通过点击上下页来实现切换。但还存在问题:页数没有限制,可以一直上下页跳转。所以需要对页数进行控制
(5)获取总文档数量,进行分页计算,控制页数
这里要用到User.count()来查询总数量

刷新页面,服务端输出如下

由此可以看出一个14条数据
因为数据库查询操作都是异步的,所以需要将find操作放到count里面,先获取总数量再进行查询浏览

接下来进行页数限制,当前页数取值不能操作总页数,如下所示

(6)实时页数显示

接下来实现一个这样的功能,所以接下来将用到的数据全部传递给模板


结果如下:

(7)完善

.

浙公网安备 33010602011771号