如何为adapter-node设置更大的请求体大小限制?
解决SvelteKit adapter-node大文件上传「Invalid request body」问题
核心原因与解决方案
adapter-node 默认请求体大小限制为5MB,7MB文件超出了这个阈值,只需通过**BODY_SIZE_LIMIT环境变量**调整上限即可解决。
不同场景的具体设置方式
1. 本地开发临时配置
直接在启动命令前追加环境变量:
- Windows(命令提示符):
set BODY_SIZE_LIMIT=10MB && npm run dev - Windows(PowerShell):
$env:BODY_SIZE_LIMIT="10MB"; npm run dev - macOS/Linux:
BODY_SIZE_LIMIT=10MB npm run dev
2. 生产环境持久化配置
- 使用.env文件:在项目根目录创建
.env文件,添加:
adapter-node会自动读取项目根目录的.env文件,无需额外配置。BODY_SIZE_LIMIT=10MB - 部署平台面板配置:如果用Vercel、Netlify、Docker等平台,直接在平台的环境变量设置页添加
BODY_SIZE_LIMIT,值设为所需大小(支持B/KB/MB/GB单位,如20M、1GB)。
3. 自定义服务器进阶控制
若需要更灵活的body解析规则,可自定义Node服务器:
- 项目根目录创建
server.js:import { handler } from './build/handler.js'; import express from 'express'; const app = express(); // 直接设置express的body解析限制,优先级高于环境变量 app.use(express.json({ limit: '10MB' })); app.use(express.urlencoded({ limit: '10MB', extended: true })); app.use(handler); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); }); - 修改
package.json启动脚本:"scripts": { "start": "node server.js" }
注意事项
- 单位大小写不敏感,
10mb和10MB等效。 - 若同时设置环境变量和自定义服务器的body限制,自定义配置会覆盖环境变量。
内容的提问来源于stack exchange,提问作者Rodrigo Pereira
相关产品推荐
相关产品推荐

