javascript - 如何在 producthunt 之类的 NodeJS 中定义快速路由以逐日获取数据?

标签 javascript node.js reactjs mongoose

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

我有两个问题 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. 通过按 post_time 过滤帖子,使用 API 路由获取当前日期的数据
  2. 显示所有这些数据。
  3. 当用户再次到达页面末尾时,通过将您在正文中需要的日期帖子发送到相同的 API 来再次请求。
  4. 转到第 2 步。

您应该如何真正处理这个问题?

我会说获取固定数量的帖子,比如说 30,当用户用完所有这些帖子时获取下一个 30 等等。前端叫懒加载,mongoose 叫分页。

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

关于javascript - 如何在 producthunt 之类的 NodeJS 中定义快速路由以逐日获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58154140/

相关文章:

javascript - D3 完全删除 'zoom'

asp.net - 如何使用 Javascript 参数触发回发?

node.js - 从终端读取 ANSI 转义

javascript - 无法从 Node js服务获取数据到 Angular js 2

reactjs - 大量输入后 TextInput 变慢 React-native

javascript - React,使用目标名称和值从 map 更新状态函数

javascript - 比较显示意外结果的日期对象

javascript - 设置cookie并显示cookie的值

javascript - Mongodb连接服务器失败错误

node.js - Webpack 5 重大变更 "process/browser"