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)完善
.