Express.js不接受不接受大量的对象数组

问题描述

我正在使用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无法读取此数组,还是我做错了什么。

解决方法

在app.post之前先在server.js或app.js中尝试此操作

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...