Express.js不接受不接受大集合对象

Express.js does not accept does not accept an large set of array of objects

我正在使用 Express.js 创建 api 并通过 express-validator 对其进行验证,我正在尝试发送大量数据,其中包含一个包含 2000 多个对象的数组它。 您可以将数组创建为

const ids = Array(2000)
  .fill(0)
  .map((_, index) => {
    return {
      "A": "1",
      "B": "2",
      "C": "0",
      "D": "MO",
      "E": "1",
      "F": "0",
      "G": "XYZ",
      "H": "000",
      "I": "999"
    };
  });

我正在使用 axios 调用 api。

axios.post('/demo', {
  d:ids,
});

这是我的 api

app.post('/demo', async (req, res, next) => {
    console.log(req.body);
    const errors = validationResult(req);
    console.log('---- errors', errors);
    res.end('hello world');
  }
);

现在,当我登录 req.body 时,它显示空对象 {}。这是因为 express 无法读取这个数组还是我做错了什么。

在 server.js 或 app.js 中尝试此操作,然后再 app.post

express.json() 是 express 中内置的一种方法,用于将传入的请求对象识别为 JSON 对象。此方法在您的应用程序中作为中间件使用代码调用:

app.use(express.json())

express.urlencoded() 是 express 中内置的一种方法,用于将传入的请求对象识别为字符串或数组。此方法在您的应用程序中作为中间件调用,代码如下:

app.use(express.urlencoded());

更多解释refer this

还有一种可能是超出了默认大小限制。所以在这种情况下,您可以手动设置请求大小限制。

app.use(express.json({limit:'2mb'}))

更多解释refer this