我到处寻找,似乎无法找到解释,这就是Heroku在我的日志中显示的内容:
45:45+00:00 app[web.7]: Error: Request Entity Too Large
45:45+00:00 app[web.7]: at Object.error (/app/node_modules/express/node_modules/connect/lib/utils.js:44:13)
45:45+00:00 app[web.7]: at Object.limit [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/limit.js:45:47)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.logger [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/logger.js:157:5)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.favicon [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/favicon.js:78:7)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.expressInit [as handle] (/app/node_modules/express/lib/middleware.js:31:5)
45:45+00:00 app[web.7]: at next (/app/node_modules/express/node_modules/connect/lib/proto.js:190:15)
45:45+00:00 app[web.7]: at Object.query [as handle] (/app/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)
45:45+00:00 app[web.7]: POST /mls 413 1ms - 980
我已经包含了最后一条日志记录,因为我不确定它是否建议发生这些错误的HTTP URL,或者它是否是Heroku dyno正在处理的下一个请求的URL(我们每秒收到数百个请求)所以跟踪有点疯狂)。
我的应用程序( ExpressJS )需要接收大量的POST请求,这就是我放
的原因app.use(express.limit('5mb'));
在应用程序顶部的允许大量的帖子请求(通常小于2MB)。我不确定上面的错误是由于接收到太大的请求还是试图向S3发送过大的请求或其他原因造成的。有什么想法吗?
谢谢!
答案 0 :(得分:4)
如果您使用的是Express v4 +,则可以使用
app.use(bodyParser({limit: '5mb'}));
但请确保此行位于
之上app.use(bodyParser.json());
否则无效
答案 1 :(得分:1)
尽管在某些情况下解决方案app.use(bodyParser({limit: '5mb'}));
可以工作,但是如果您尝试上传的内容中包含很多与号&
,则解决方案将无法正常工作。这是因为主体解析器将基于&
进行拆分。对我有用的解决方案是使用Regex用&
替换所有出现的encodeURIComponent('&')
。
所以你有:
contentToUpload = contentToUpload .replace(/&/g, encodeURIComponent('&'))
答案 2 :(得分:-3)
我尝试在很多方面解决了这个问题,但最后我得到了解决方案和解决方案太简单的解决方案,我只是绕过代码,请按照以下步骤来帮助您解决问题 - 在项目中打开以下页面
node_modules \体解析器\ node_modules \生体\ index.js
并更改
if(typeof options.limit ===' number') limit = options.limit
只需删除option.limit并添加数字,whatevr你的限制 例如。 limit = 10024