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" }));
  ...
}
相关推荐
打工仔折腾 AI6 小时前
用 Shell 脚本自动部署 mysqld_exporter 并接入 Prometheus 远程抓取
人工智能·后端·python·性能优化·ai agent 实战
毅炼6 小时前
不写多语言 SDK,怎么让 Python、Go、Node 服务接入注册中心?
java·后端·系统架构·gateway
Methy6 小时前
IoTHub半个月崩了五次?都是裸rethrow惹的祸
服务器·c++·后端
我不会起名字3226 小时前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go
回家路上绕了弯6 小时前
AI 编程助手为什么反复读取同一份上下文?如何减少无效重复
后端
Lost of 程序猿6 小时前
用 Quartz.NET 优雅地处理 .NET 定时任务:从选型到 Docker 部署全记录
后端·c#·asp.net
名字还没想好☜7 小时前
Spring Boot 优雅停机实战:等在途请求处理完再退出,配合 K8s preStop 别丢请求
java·后端·spring
摇滚侠7 小时前
《Spring Boot 3:高级与架构设计》第 1 章 Bean 与 BeanDefinition 个人理解 2
java·spring boot·笔记·后端
IT_陈寒7 小时前
Redis主从切换竟让业务卡了3秒?这个坑我替你踩了
前端·人工智能·后端
右耳朵猫AI7 小时前
Java周刊2026W38 | Micronaut 修补三漏洞、JDK 27 提速 54%、Jetty 修复抖动测试
java·后端·spring