您好,我对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;
答案 0 :(得分:2)
在您的代码中,您两次致电bodyParser.json()
和bodyParser.urlencoded()
,问题是带有limit
的那个在没有选项的调用之后,默认为100kb
。
因此,当您发布大于100kb
的东西时,将引发该错误,因为第一个解析器将不会进入下一个中间件。
您不应两次致电bodyParser[method]
。
删除:
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' });