首页 > 解决方案 > Nodejs分页

问题描述

我想用 Nodejs 和 Mongoose 进行分页。我可以限制帖子,但我无法处理前端到后端的连接。

这是 app.js:

app.get('/', function (req, res) {
  var perPage = 2
  var page = req.params.page || 1

  Metin
  .find({})
  .skip((perPage * page) - perPage)
  .limit(perPage)
  .exec(function(err, metins) {
      Metin.count().exec(function(err, count) {
          if (err) return next(err)
          res.render('index', {
              metins: metins,
              current: page,
              pages: Math.ceil(count / perPage)
          })
      })
  })
});

这是我的 index.pug

extends layout

block content
  body
    br 
    br
    br
    .container
      ul.list-group
        each metin, i in metins
          li.list-group-item
            a(href="/metin/" + metin._id)= metin.baslik

我想添加可以传递到相关分页网页的按钮。你能帮我么?

这条线下面的东西可以解决吗?

a(href='?page=' + pages)= length.pages.

标签: node.jsmongodbfrontendpug

解决方案


您可以使用while迭代器对pages变量进行循环,以便为每个页面生成一个数字。并根据current变量有条件地显示/隐藏上一个/下一个链接。如果您没有大量页面,这应该可以工作:

ul
  if current > 1
    li
      a(href=`?page=${parseInt(current) - 1}`) Previous
  - var i = 1
  while i <= pages
    li
      a(href=`?page=${i}`)= i++
  if current < pages
    li
      a(href=`?page=${parseInt(current) + 1}`) Next

此外,请参阅示例。


推荐阅读