分享
三行代码  ›  专栏  ›  技术社区  ›  Juraj Jakubov

Mongoose分页不会显示页数

  •  0
  • Juraj Jakubov  · 技术社区  · 1 年前

    我正在尝试用mongoose paginate构建分页,但它不会显示页数或页数…

    路线JS

    // View users
    router.get("/show", function (req, res, next) {
    
        var query = {};
        var options = {
            offset: 0,
            limit: 10
        };
    
        User.paginate(query, options).then(function (result) {
            return res.render("../modules/users/views/userList", {
                layout: 'cmsLayout',
                users: result.docs,
                page: parseInt(result.page),
                pages: parseInt(result.pages)
            });
        });
    });
    

    车把

     {{#each pages}}
         <h1>{{this}}</h1>
     {{/each}}
    

    //结果为零

      <h2>{{pages}}</h2>
    

    //结果为NaN

    我正在寻找任何建议如何显示页码,如1 2 3 4 5

    1 回复  |  直到 1 年前
        1
  •  1
  •   Victor    1 年前

    这个 Document 属于 mongoose-paginate

    以具有属性的对象实现的承诺:

    • 文档数组-文档数组

    • total number-集合中与查询匹配的文档总数

    • 限制数字-使用的限制

    • [第页]编号- 仅当指定时 或使用默认页/偏移值

    • [页数]数字- 仅当指定页时 或使用默认页/偏移值

    • [偏移量]数字- 仅当指定时 或使用默认页/偏移值

    似乎 Only if 这里计数。


    //Skip 20 documents and return 10 documents
    Model.paginate({}, { page: 3, limit: 10 }).then(function(result) {
        // result.docs
        // result.total
        // result.limit - 10
        // result.page - 3
        // result.pages
    });
    

    所以我们可以这样做。

    • 这里我们使用 page . offset 需要我们手动计算,这很糟糕。

    • 大多数情况下,我们不需要解析任何内容。包裹的作者已经为你包装好了。


    router.get("/show", function (req, res, next) {
        var query = {};
        var options = { page: 1, limit: 10 };
    
        User.paginate(query, options).then(function (result) {
            return res.render("../modules/users/views/userList", {
                layout: "cmsLayout",
                users: result.docs,
                page: result.page, // The page num which equals 1.
                size: result.limit, // The page size which equals 10.
                pages: result.pages // It seems like the total page num. Not sure.
            });
        });
    });
    

    这里还有什么你没有显示的信息吗?