gpt4 book ai didi

javascript - 使用 express 进行 Node 分页

转载 作者:搜寻专家 更新时间:2023-10-31 23:28:42 24 4
gpt4 key购买 nike

我必须构建 API 作为服务器端,它应该在 10 个条目的页面中提供结果,仅使用 Node 和 express(没有其他包)。

  • 查询参数 p 指定要返回的页面,从 1 开始。如果省略 p 参数,则默认值为 1。
  • 如果客户端请求 /api/stories?p=1,他们应该只会得到 10 个故事,从最新的故事开始。

  • 如果 p=2,API 必须返回第二批 10 个故事。当返回一页故事时,必须按最近的故事排在第一位。

  • 如果 p 大于最后一个页码,API 必须返回最后一个可用页面。

  • page 值是当前返回的页面。如果请求的页面 p 大于最后一个页码,则返回的 page 值将指示最后一个页码。

  • pageCount 值是最后一个非空页的编号。*

这就是我的分页...

//pagination
const pageLimit = 10;
app.get('/api/posts', function(req, res) {
res.json({
"posts": posts.slice(-pageLimit).reverse(),
"page": 1,
"pageCount": Math.ceil(posts.length / 10)
});
});

返回是正确的,因为每页 10 个帖子,第 11、21、31 个帖子被推送到第 2、3 页等...现在,当我尝试从第 1 页前进到第 2 页(作为下一页)时,我的问题来了,没有任何反应......

我猜我必须实现类似 next 的东西,但我不知道该怎么做

任何帮助将不胜感激...

最佳答案

摸索了 2 天后,我找到了一个适合我的解决方案..谢谢 num8er 为我指明了正确的方向...

app.get('/api/posts', (req, res) => {
const pageCount = Math.ceil(posts.length / 10);
let page = parseInt(req.query.p);
if (!page) { page = 1;}
if (page > pageCount) {
page = pageCount
}
res.json({
"page": page,
"pageCount": pageCount,
"posts": posts.slice(page * 10 - 10, page * 10)
});
});

关于javascript - 使用 express 进行 Node 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47800245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com