关于node.js:Body-Parser太大的Nodejs

Body-Parser too large Nodejs

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

1
request entity too large

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

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

使用注意事项:

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

但是,这样做,我收到此错误:

1
Unexpected token i in JSON at position 5

有人知道我在这里想念的吗? 提前致谢!

这是我尝试发送的对象的打印件:

Object with base64 attribute


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

因为他们在他们的方法中接受一个对象,所以我们可以传递请求的限制和大小,因此我将我的配置如下:

1
2
3
4
5
6
7
8
9
10
11
var bodyParser = require('body-parser');

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

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

这里有一个主题也可以提供帮助:

堆栈问题

也有BodyParser本身的文档,您可以通过单击有关BodyParser的文档来访问


尝试交换bodyParser.json和bodyParser.urlencoded。

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