You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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文件,添加:
    BODY_SIZE_LIMIT=10MB
    
    adapter-node会自动读取项目根目录的.env文件,无需额外配置。
  • 部署平台面板配置:如果用Vercel、Netlify、Docker等平台,直接在平台的环境变量设置页添加BODY_SIZE_LIMIT,值设为所需大小(支持B/KB/MB/GB单位,如20M、1GB)。

3. 自定义服务器进阶控制

若需要更灵活的body解析规则,可自定义Node服务器:

  1. 项目根目录创建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');
    });
    
  2. 修改package.json启动脚本:
    "scripts": {
      "start": "node server.js"
    }
    

注意事项

  • 单位大小写不敏感,10mb和10MB等效。
  • 若同时设置环境变量和自定义服务器的body限制,自定义配置会覆盖环境变量。

内容的提问来源于stack exchange,提问作者Rodrigo Pereira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 19:15:33