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

Node.js Express.js不接受大量对象数组,node.js,express,express-validator,Node.js,Express,Express Validator,我正在使用Express.js创建api并通过ExpressValidator进行验证,我正在尝试发送大量数据,这些数据由一个包含2000多个对象的数组组成。 您可以按以下方式创建阵列: const ids = Array(2000) .fill(0) .map((_, index) => { return { "A": "1", "B": "2", &quo

我正在使用Express.js创建api并通过ExpressValidator进行验证,我正在尝试发送大量数据,这些数据由一个包含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中尝试此操作

json()是一个内置于express中的方法,用于将传入的请求对象识别为json对象。此方法在应用程序中被称为中间件,使用以下代码:

app.use(express.json())

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

app.use(express.urlencoded())

更多解释

还有一种可能性是,默认大小限制可能已超过。因此,在这种情况下,您可以手动设置请求大小限制

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


有关详细说明,请在app.post之前在server.js或app.js中尝试此操作

json()是一个内置于express中的方法,用于将传入的请求对象识别为json对象。此方法在应用程序中被称为中间件,使用以下代码:

app.use(express.json())

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

app.use(express.urlencoded())

更多解释

还有一种可能性是,默认大小限制可能已超过。因此,在这种情况下,您可以手动设置请求大小限制

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


更多解释

您是否有合适的Express中间件来解析正文并填充
req.body
?默认情况下,Express不会读取正文,因此不会在
req.body
中放入任何内容。如果您正在发送JSON,那么您需要在路由处理程序之前使用
app.use(express.JSON())
。您是否有适当的express中间件来解析正文并填充
req.body
?默认情况下,Express不会读取正文,因此不会在
req.body
中放入任何内容。如果您发送的是JSON,那么您需要在路由处理程序之前使用
app.use(express.JSON())
。我认为通过添加
app.use(express.JSON({limit:'2mb'))已经超过了请求大小限制解决了我的问题如果它起作用那很好,谢谢你的更新,请随意编辑我的答案,并在代码中添加限制大小,以便将来对其他人有所帮助,如果你能接受这一点作为解决方案的答案,那将是非常好的:)我认为通过添加
app.use(express.json)已经超过了请求大小限制({limit:'2mb'});
解决了我的问题如果它起作用就好了,谢谢你的更新,请随意编辑我的答案,并将限制大小添加到代码中,以便将来对其他人有所帮助,如果你能接受这一点作为解决方案的答案,那就太好了:)