用户登录

在 post.middleware 文件里面,找个地方可以定义一个内容分页中间件,名字叫 paginate ,在这个中间件里面,先要获取到当前的页码,这个页码我们可以让客户端通过一个 page 查询符来设置。把这个 page 从地址查询符里面解构出来。

然后再准备一下每页的内容数量,可以声明一个 limit,它的值用一下 parseInt 处理一下 POSTS_PER_PAGE,把它转换成 10 进制的数字,这个 POSTS_PER_PAGE 是在一个环境变量里设置的值,如果在应用里没有设置这个环境变量,可以默认让 limit 等于 30 。 两条竖线表示或者。 如果设置了 POSTS_PER_PAGE 就用它的值,如果没有,就让 limit 等于 30。

下面要根据当前页码还有每页的内容数量计算出一个偏移量,声明一个 offset,它的值等于 limit 乘以括号 page - 1 。

准备好这些数据以后,就可以去设置请求里的 pagination 这个属性的值了,request.pagination 等于一个对象,把 limit 还有 offset 放进来。

在内容列表接口的处理器里面会用到请求里的这个 pagination 这个属性里面的值。

在中间件里面要执行 next() 继续下一步的处理。

打开 post.router,在文件的顶部,从 post.middleware 里面导入 paginate 这个中间件。然后在内容列表接口的上面,用一下这个 paginate 中间件。

下面可以在 HTTP 客户端测试一下这个分页功能,打开 内容列表 请求,先去掉请求地址里面的查询参数,发送一下这个请求。

你会发现这次内容列表接口给客户端响应回来两个内容项目,因为在应用里同我们把 POSTS_PER_PAGE 这个配置设置成了 2 。在客户端要得到第二页的内容项目,可以在请求的地址里面,加上一个 page 查询符,把它的值设置成 2 。 发送一下这个请求。

这次得到的就是第二页上的内容项目。

创建内容分页中间件《 Node.js 服务端应用开发:内容分页 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点