[英]413 (Request Entity Too Large) on Heroku w/ Node.JS and Create-React-App BuildPack
在过去的 3 天里,我一直在打乱互联网,似乎绕圈子没有解决方案。
我们一直在本地构建应用程序,使用 create-react-app 和 Express.js 后端。 在本地实例上上传文件(任何类型)没有问题。 我们已经部署到 Heroku,使用代理为前端和后端提供单独的 dynos。 就目前而言,没有可以找到的 nginx.conf 文件。 一切都说我们正在运行 nginx,但没有可编辑的配置文件。 尽管如此,当尝试在 Heroku 部署的站点上上传时,无法加载资源:在发出 POST 请求时,会触发服务器响应状态为 413(请求实体太大)错误。
我试过添加:
// Body Parser Middleware
app.use(bodyParser.json({ limit: "500mb" }));
app.use(
bodyParser.urlencoded({
limit: "500mb",
extended: true,
parameterLimit: 5000000
})
);
我们使用 Multer 进行分段上传,这就是问题所在(上传文件,特别是音频文件)
如下:
const maxSize = 50 * 1024 * 1024; //30 MB
/*
Profile Upload
*/
const upload = multer({
storage: storage,
limits: { fileSize: maxSize, fieldSize: maxSize }
});
此外,在前端 React.js 端的 static.json 中,添加了以下内容:
{
"max_body_size": "50m",
}
已经尝试了 Stackoverflow 和 Github 上建议的每个解决方案。 我们在这里遗漏了什么吗? 为自己模拟错误: https ://www.trakz.co/upload w/电子邮件为 tester@gmail.com 密码为 testpass
我通过增加json
的limit
解决了使用Node.js
和Express.js
编写的后端的问题。 您可以参考下面的这段代码以供参考:
app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
对于Express v4.16.0+然后你使用express.json
否则你可以使用bodyparser
app.use(express.bodyParser({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.