我目前正在开发一个 API,它应该接收图像的 base64,但是当我尝试将它传递到有效负载并通过 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

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

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

node.js - Body-Parser太大Nodejs-LMLPHP

最佳答案

感谢所有帮助我解决这个问题的人!对于那些面临或将面临这种情况的人,我能够通过将对象传递给 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 访问

关于node.js - Body-Parser太大Nodejs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45614705/

10-12 15:11