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

Next.js项目迁移至Bun后FormData解析报错求助

解决Bun环境下Next.js解析FormData时的"missing final boundary"错误

问题原因

你的后端代码中错误使用了await request.headers——Request.headers是同步的Headers对象,并非Promise。在Bun运行时中,这种不必要的await会触发请求体预读取,导致后续调用request.formData()时请求流不完整,进而出现"缺少最终边界"的解析错误。

修复步骤

  1. 修改后端POST处理函数,移除await关键字,直接访问request.headers:
export const POST = async (request: Request) => {
  try {
    // 移除await,直接访问headers
    console.log('request: ', request.headers)
    const formData = await request.formData();
    const username = formData.get("username");
    const password = formData.get("password");
    // ... 后续业务逻辑
  } catch (error) {
    console.error(error);
    return new Response(JSON.stringify({ error: '表单数据解析失败' }), { status: 500 });
  }
}
  1. 额外排查点:如果修改后仍报错,检查是否有其他中间件或代码提前读取了request.body(比如调用request.text()、request.json()等)。Request对象的body只能被读取一次,重复读取会导致数据丢失。

验证

重启Bun服务后重新提交表单,此时formData()应该能正常解析请求体中的数据。

内容的提问来源于stack exchange,提问作者Ákos Kovács

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:23:13