NodeJS 优化庞大的API响应数据[已关闭]

prdp8dxp  于 2023-10-17  发布在  Node.js
关注(0)|答案(1)|浏览(111)

已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。

2天前关闭。
Improve this question
我是来寻求专业建议和指导的。请问我如何处理和管理以下问题:
a)当你有一个巨大的API响应数据时,最好的方法是什么?让我们使用这个场景,假设您有超过300个文档(行)的响应数据,即使您已经完善了集合设计(使用索引,避免填充和虚拟)。
更具体地说,假设您正在使用自动滚动获取在React Native移动的应用程序上显示此记录。我知道分页,但我不知道如何应用分页的移动的应用程序和如何有效地使用 Mongoose 。
”为什么我需要这样做?
有些情况下,从API返回的数据超过500个文档,例如选择迄今为止的所有记录。这可能返回对于移动终端来说太重的巨大文档。从React Native的Angular 来看,我可能不想使用Flat List来显示我的数据,而可能想使用JavaScript map函数来遍历自定义组件中返回的响应数据。

  • 技术-NodeJS -Mongoose -MongoDB -React Native

感谢您的指导提前。

fgw7neuy

fgw7neuy1#

可以使用分页或无限滚动。

预订

  • 前端(react-native app)*

1.开始,从你的React Native应用发送一个请求,指定页面大小和页码。
1.确保管理从API获取的数据并更改组件的状态。

const pageNumber = 1; // Default to page 1
const pageSize = 10; // Set your desired page size

fetch(`your-api-endpoint?page=${pageNumber}&pageSize=${pageSize}`)
  .then(response => response.json())
  .then(data => {
    // Handle the data, such as updating your component's state
  })
  .catch(error => {
    // Handle errors
  });
  • nodejs*

1.从传入的请求中提取页码和页面大小参数。
1.对于MongoDB查询,确定skip和limit值。
1.使用skip和limit查询MongoDB集合,然后将结果作为响应提供。

const pageNumber = req.query.page || 1;
const pageSize = req.query.pageSize || 10;

const skip = (pageNumber - 1) * pageSize;
const limit = parseInt(pageSize);

Model.find({ /* your query criteria */ })
  .skip(skip)
  .limit(limit)

对于无限滚动,您可以使用任何npm包。

相关问题