【问题标题】:How to implement pagination in nodejs + postgresql如何在nodejs + postgresql中实现分页
【发布时间】:2018-06-26 04:23:58
【问题描述】:

我是 Node.js 的新手。我想在 Node.js 中使用 express 作为框架和 Postgresql 作为数据库在我的 Api 编写中实现分页。我想以分页的形式获取数据。

提前致谢。

【问题讨论】:

  • 如果以下答案解决了您的问题 - 请标记为正确

标签: node.js postgresql express pagination


【解决方案1】:

您可以使用LIMIT and OFFSET 从数据库中获取数据块。您需要 2 个变量来进行分页,page 和 itemsPerPage。您可以从路由本身获取页面变量,例如 /api/items/:page,对于 itemsPerPage,您可以将其设为默认 20 个项目,但允许客户端通过查询指定它?items= 50 或请求正文或标头或任何您想要的。然后,当您拥有这两个变量时,您可以对数据库执行查询,例如:

选择 * 从项目 限制 {itemsPerPage} 偏移量 {(page - 1) * itemsPerPage}

LIMIT 表示检索 X 个项目,OFFSET 表示跳过 Y 个项目。它们两者的组合将是:“跳过 Y 项并给我下一个 X 项”。 Page - 1 表示如果您在第一页,我们不想跳过任何项目,而是检索前 X 个项目。这在页码 >= 1 时有效。

【讨论】:

  • 我很高兴它做到了@ajaysaini。请把我的答案标记为正确的:)
【解决方案2】:

您可以在用于分页排序的列上使用索引。您可以在列值(唯一值)上使用 where 条件来提高效率,而不是限制和偏移量。我已经创建了一个关于这个https://medium.com/@shikhar01.cse14/pagination-with-postgresql-18e0b89e0b1c的帖子

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 2011-02-25
    • 2017-03-07
    • 2021-07-11
    • 2021-11-25
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多