大型请求实体的错误处理
使用 Express 应用程序时,您可能会遇到“错误:请求实体太大”错误。当请求有效负载的大小超过指定限制时,通常会发生此错误。以下是如何解决此问题的说明:
在提供的代码片段中,您有以下行:
app.use(express.limit(100000000));
此行使用express.limit()方法来限制请求大小为 100MB(1 亿字节)。但是,此设置会被使用 bodyParser 方法的后续中间件覆盖(代码片段中未显示)。
Body Parser 的正确配置
要设置正确请求大小限制,您应该显式配置 bodyParser 中间件。默认情况下,json()用于处理JSON请求,urlencoded()用于表单数据请求。您可以使用每个解析器各自的选项设置限制:
app.use(express.json({limit: '50mb'})); app.use(express.urlencoded({limit: '50mb'}));
或者,您可以使用现已弃用的 bodyParser 方法并设置其限制选项:
app.use(express.bodyParser({limit: '50mb'}));
确定极限值
在您的情况下,您观察到1.0787 MB 有效负载,在您设置的 100MB 限制之内。这表明问题可能出在其他地方。确认您没有配置任何其他可能设置更严格限制的中间件或第三方库。
故障排除
如果您已正确配置主体 -解析器中间件并排除了限制的任何其他潜在来源,您可能需要调试代码以确定限制设置不正确的位置。考虑在中间件的战略点添加控制台日志,以检查 limit 变量的值。
在 Express v4.16.0 及更高版本中,您可以返回使用 app.use(express.limit 的简洁语法())。但是,需要注意的是,bodyParser 方法已被弃用,应替换为 body-parser,以便为您的代码提供面向未来的保障。
以上是如何解决 Express.js 应用程序中的'错误:请求实体太大”?的详细内容。更多信息请关注PHP中文网其他相关文章!