问题描述
我正在使用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