MongoDb 分页逻辑
   1 分钟阅读

node 的分页逻辑

1
var User = require("../models/User")

先获取总数,做一些基础限制

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

    //用户管理
    router.get("/user", function (req, res, next) {
        var queryPage=req.query.page;// /admin/user?page=2
        var page, //当前页数
            skip; //前面忽略的条数
            varpages, // 合计总页数
            count; //总条数
            varlimit=5;//每页显示条数
        if (typeofNumber(queryPage) !=="number") {
            page=1;
        } else {
            page=Number(queryPage) ||1;
        }
        User.count().then(function (count) {
            return count;//数据库查询总条数
        }).then(function (count) {
            count=count;
            pages=Math.ceil(count/limit);
            //paga 不大于 pages
            page=Math.min(pages, page);
            //page 不小于 1
            page=Math.max(page, 1);
            skip= (page-1) *limit;
            User.find().limit(limit).skip(skip).then(function (data) {
                //交给admin/user_index 页面展示,并且数据是 第二个参数
                res.render(admin/user_index, {
                    users:data,
                    count:count,
                    limit:limit,
                    pages:pages,
                    page:page
                });
            })
        })
    })