如何在像producthunt这样的NodeJS中定义快速获取数据的路线?

Posted

技术标签:

【中文标题】如何在像producthunt这样的NodeJS中定义快速获取数据的路线?【英文标题】:How to define express routes to get data in day by day in NodeJS like producthunt? 【发布时间】:2020-01-28 22:28:42 【问题描述】:

我有一个 MERN 堆栈应用程序。现在,我从数据库中获取所有帖子并在 React 中显示。但是,我只想显示默认情况下在当前日期创建的帖子,然后如果用户向下滚动,react 将请求前一天的更多信息,依此类推。就像在producthunt 中一样。

我有 2 个问题 1)由于我不知道每天创建多少帖子,我无法使用滚动的特定位置来定义我应该在哪个点调用下一条路线以获取更多数据。我如何知道何时请求更多数据? 2)我不知道如何定义这些路线。我是否应该只有一条路线并从数据库中请求越来越多的数据。或者每天有多条路线?听起来确实有很多路线。

获取所有帖子

router.get('/', async (req, res) => 
  try 
    const posts = await Post.find();
    res.json(posts);
   catch (err) 
    console.error(err.message);
    res.send(500).send('Server Error');
  
);

【问题讨论】:

【参考方案1】:

根据需要,flow应该是这样的。

    使用 API 路由通过 post_time 过滤 Post 来获取当前日期的数据 显示所有这些数据。 当用户通过将正文中您需要的日期帖子发送到同一 API 再次到达页面结束请求时。 转到第 2 步。

您应该如何真正解决这个问题?

我会说获取固定数量的帖子,比如 30 个,当用户用尽所有这些帖子时获取下一个 30 等等。在前端称为延迟加载和猫鼬分页。

Post.find().skip(30).limit(30);

【讨论】:

以上是关于如何在像producthunt这样的NodeJS中定义快速获取数据的路线?的主要内容,如果未能解决你的问题,请参考以下文章

如何在像犰狳这样的库中扩展一个类?

android如何在像GMail这样的webview中显示PopupMenu

如何在像 row(n)=row(n-1)+1 这样的 python pandas 列中添加 1?

线程池是如何工作的,以及如何在 NodeJS 之类的 async/await 环境中实现它?

在像 bittorrent 这样的点对点协议的情况下,NAT 遍历是如何工作的。

在像 bittorrent 这样的点对点协议的情况下,NAT 遍历是如何工作的。