NestJS(Fastify)处理form-data时验证管道触发栈溢出错误
问题求助说明
此前提交的相关GitHub issue被维护者关闭,在官方Discord社区也未获得有效解决方案,特此公开求助。
问题复现场景
- 当前使用NestJS的Fastify适配器搭建服务,框架未提供适配Fastify的原生文件上传拦截器,因此选用
@fastify/multipart(原fastify-multipart)包实现multipart/form-data格式请求解析 - 按常规方式注册该中间件时开启了
attachFieldsToBody配置项,以适配项目中设置的全局验证管道,对应触发问题的POST请求仅配置了结构非常简单的DTO - 运行复现环境即可稳定触发异常:验证管道环节抛出500错误,报错信息为 Maximum call stack size exceeded(调用栈溢出)
已排查进展
- 已确认
@fastify/multipart中间件本身运行正常,不存在解析逻辑问题 - 异常仅在验证管道执行阶段触发,执行过程会产生无限循环,暂未定位到根因
- 当前正在通过调试
@nestjs/common包源码的方向排查问题
若有开发者遇到过同类问题,或知晓相关排查思路、解决方案,欢迎告知。
内容的提问来源于stack exchange,提问作者Blade
相关产品推荐
相关产品推荐

