Body-Parser太大的Nodejs

时间:2017-08-10 13:11:41

标签: node.js express base64 body-parser

我目前正在开发一个应该接收图像的base64的API,但是当我尝试将其传递到有效负载并通过POST发送时,服务器(顺便说一下,使用Node制作,使用express和body-parser作为中间件)给了我以下错误:

request entity too large

在网上搜索了很多内容后,我发现有人说我应该使用:

bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
app.use(bodyParser.json({limit: '50mb'}));

使用内容:

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

然而,通过这样做,我收到此错误:

Unexpected token i in JSON at position 5

有谁知道我在这里缺少什么?提前致谢!

这是一个以我试图发送的对象为例的打印:

Object with base64 attribute

2 个答案:

答案 0 :(得分:3)

谢谢大家帮助我解决这个问题!对于那些正面临或将面临这种情况的人,我能够通过将对象传递给bodyParser.urlencoded方法和BodyParser.json方法来解决这个问题。

由于他们接受了方法中的对象,我们可以传递请求的限制和大小,所以我配置我这样做:

var bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({
    limit: '5mb',
    parameterLimit: 100000,
    extended: false 
}));

app.use(bodyParser.json({
    limit: '5mb'
}));

这里有这个主题也有帮助:

Issue on Stack

还有BodyParser本身的文档,您可以通过单击documentation about BodyParser

来访问它

答案 1 :(得分:0)

尝试交换 bodyParser.json bodyParser.urlencoded

var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}))