在过去的三天里,我一直在争先恐后地跨网,似乎无所适从。
我们一直在本地使用create-react-app和Express.js后端构建应用程序。在本地实例上上传(任何类型的)文件没有问题。此后,我们已经部署到Heroku,并使用代理对前端和后端分别进行了测功。就目前而言,找不到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,电子邮件为tester@gmail.com,密码为testpass
答案 0 :(得分:0)
我通过增加 Node.js
的 Express.js
解决了用 limit
和 json
编写的后端的问题。您可以参考下面的这段代码以供参考:
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'}));