Nestjs 解决 request entity too large

背景

修改一个富文本的时候,

排查思路

报错是: "request entity too large"

  • 搜索后端文案 - 没找到

  • 请求体有关

    • nginx 设置了请求体大小拦截抛错,比如 client_max_body_size ?
    • 框架的请求体解析包限制量数值较低

排查nginx 设置的拦截抛错

  • 直接查看线上 nginx 的配置 - 无 client_max_body_size 配置
  • 把 curl 后更改部分参数放到 apifox 直接请求 本地 的 node 服务时,仍然报错,跳过 nginx 限制拦截抛错的问题,

排查框架的请求体解析包限制量数值较低

报错内容是 "request entity too large" 则和请求体有关,于是从请求体包入手,nestjs 我们用的是 express,请求体解析的包是 body-parser

  1. 查看 ts 类型中的 body-parser
  1. 搜索 limit

得到 Defaults to '100kb' **默认值为 "100kb"

解决方法

  • 增大配置请求体大小限制, 将限制的值放在环境变量(配置文件)中,方便快速更改
ts 复制代码
import { json } from "express";
import { ConfigService } from "@nestjs/config";
import { NestFactory } from "@nestjs/core";


async function bootstrap() {
   ...
  const app = await NestFactory.create(
    AppModule.register(absoluteConfigFilePath)
  );

  // 配置请求体大小限制, 重点在于这行
  app.use(json({ limit: configService.get("MAX_REQ_BODY_SIZE") || "10mb" }));
  ...
}
相关推荐
gelald10 分钟前
Spring Boot - 自动配置原理
java·spring boot·后端
酒鼎23 分钟前
学习笔记(12-02)事件循环 - 实战案例 —⭐
前端·javascript
希望永不加班23 分钟前
SpringBoot 集成测试:@SpringBootTest 与 MockMvc
java·spring boot·后端·log4j·集成测试
uzong28 分钟前
软件人员可以关注的 Skill,亲测确实不错,值得试一下
人工智能·后端
掘金虾31 分钟前
Hono 框架入门到实战:用 Node.js 写一个支持工具调用的流式对话 Agent
后端
用户83562907805132 分钟前
Python 自动拆分 Word 文档教程:按分节符与分页符处理
后端·python
小恰学逆向34 分钟前
【爬虫JS逆向之旅】某球网参数“md5__1038”逆向
javascript·爬虫
竹林81834 分钟前
从“连接失败”到丝滑登录:我用 ethers.js v6 搞定 MetaMask 钱包连接的全过程
前端·javascript
树獭叔叔37 分钟前
Claude Code 工具系统深度剖析:从静态注册到动态发现
后端·aigc·openai
树獭叔叔1 小时前
Claude Code 的上下文管理:多层渐进式压缩架构深度解析
后端·aigc·openai