Mongoose的分页查询应用

作者: Lynan 分类: Node.js 发布时间: 2018-03-03 23:02

例如一个新闻列表,我们并不需要一次性从后端获得所有的列表项进行渲染,因为这无疑对网络和浏览器都会是一个不小的负担,在这种场景,通常我们一次只获取一定数量的列表项渲染出来,比如说第一次请求的时候只展示10条新闻,在点击“查看更多”的按钮后加载更多的新闻,亦或是上拉加载更多等等方式触发获取更多的数据
效果如下:

router操作

router.get('/article/news', (req, res) => {
  var pageOptions = {
    page: req.query.page || 0, //默认查询页码为0,即如果未向后端api传递页码时,获取第一页的数据
    limit: req.query.limit || 10  //每页展示10条数据
}
News.find({'$where':"this.category == '新闻'"})
.sort({ update_at : -1})  //按时间最新顺序进行倒序排序
.skip(pageOptions.page*pageOptions.limit) //顾名思义,跳过第n页的数据,设为新查询起点
.limit(pageOptions.limit)  //从新的起始位置查询指定条数据
.exec(function (err, doc) {
    if(err) { res.status(500).json(err); return; };  //查询错误时返回500
    res.status(200).json(doc);  //无异常,返回指定页码的数据
})
})

发表评论

电子邮件地址不会被公开。 必填项已用*标注