如何在nodejs + postgresql中实现分页

时间:2018-01-17 10:14:22

标签: node.js postgresql express pagination

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

提前致谢。

2 个答案:

答案 0 :(得分:7)

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

SELECT *
    FROM items
    LIMIT {itemsPerPage} OFFSET {(page - 1) * itemsPerPage}

LIMIT表示检索X个项目,OFFSET表示跳过Y个项目。它们两者合二为:"跳过Y项,让我得到下一个X项"。 Page - 1表示如果您在第一页上我们不想跳过任何项目,而是检索前X项。当页码为> = 1时有效。

答案 1 :(得分:0)

您可以在用于分页排序的列上使用索引。可以使用对列值(唯一值)的where条件代替限制和偏移,以提高效率。我为此https://medium.com/@shikhar01.cse14/pagination-with-postgresql-18e0b89e0b1c

创建了一条帖子