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" }));
  ...
}
相关推荐
无限进步_9 小时前
【C++】C++11的类功能增强与STL变化
java·前端·数据结构·c++·后端·算法
字节跳动数据库9 小时前
TRAE × 火山引擎 Supabase:为你的 AI 应用装上“数据引擎”
人工智能·后端
一只小小Java9 小时前
Echarts单表多图实现
前端·javascript·echarts
跟着珅聪学java9 小时前
Element UI 的 Tabs 标签页开发教程
javascript·vue.js·elementui
竹林8189 小时前
用Viem替换ethers.js:一次合约交互的"减负"实战,我总算把TypeScript类型搞明白了
前端·javascript
用户6757049885029 小时前
Python 统一大业:uv 如何整合 Pip、Pyenv 和 Venv?
后端·python
倚栏听风雨9 小时前
Spring AI 流式工具调用:你的 TOOL_CALLS Chunk 去哪了?
后端
归故里9 小时前
harmony-next.skills 为 AI 而生!
前端·后端·github
木雷坞9 小时前
NAS 放模型,GPU 跑 vLLM:一次启动卡住的排查记录
后端
TYKJ0239 小时前
带宽100M但传输只有30M?你的服务器可能该换TCP算法了
后端·算法