您好,我在 Express.js 方面遇到问题,我需要将 base64 文件发送到 node.js,我的 configuraizone 如下所示,但是当我发送文件时,出现此错误: PayloadTooLargeError:请求实体太大!我读过您需要像下面那样对正文解析器设置限制,事实是这种情况不断发生在我身上,我该如何解决这个问题?
节点代码:
const express = require("express");
const myParser = require("body-parser");
//const http = require('http');
const app = express();
//app.use(myParser.json({ type: 'application/*+json' }))
app.use(myParser.json());
app.use(myParser.urlencoded({
extended: true
}));
app.use(myParser.json({limit: '200mb'}));
app.use(myParser.urlencoded({limit: '200mb', extended: true}));
//Porta predefinita Server
const RunPort = 8988;
//Avvio del server sulla porta specificata
app.listen(RunPort, function () {
console.log("Serve run on Port: ", RunPort);
})
module.exports = app;
在您的代码中,您已调用两次bodyParser.json()
& bodyParser.urlencoded()
,问题是limit
是在不带选项的调用之后,默认为100kb
。
因此,当您发布的内容大于100kb
将引发该错误,因为第一个解析器不会转到下一个中间件。
你不应该打电话bodyParser[method]
twice.
Remove:
app.use(myParser.json());
app.use(myParser.urlencoded({
extended: true
}));
然后离开:
app.use(myParser.json({limit: '200mb'}));
app.use(myParser.urlencoded({limit: '200mb', extended: true}));
取决于您发布的方式base64
字符串,您可能想使用:
app.use(myParser.text({ limit: '200mb' }));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)