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

Next.js13+TypeScript+Prisma中PUT请求request.body返回ReadableStream问题排查

解决Next.js 13 PUT接口无法解析request.body的问题

问题原因

你混淆了Next.js Pages Router和App Router的请求对象API:

  • 在Pages Router中,NextApiRequest的body会自动解析为JSON/表单数据;
  • 但在Next.js 13+的App Router中,路由处理函数接收的是Web标准的Request对象,它的body是一个ReadableStream,必须手动调用解析方法才能获取实际数据。

解决方案

修改代码,先通过request.json()解析请求体,再解构所需字段:

export async function PUT(request: Request) {
    const id = "1";
    // 先将ReadableStream解析为JSON对象
    const body = await request.json();
    // 从解析后的body中解构需要的字段
    const { name, description, price, image, category, tags, link, variantType, sizes, allOfSizes, status, rating, numberOfReviews } = body;
    // 后续代码省略
}

额外说明

  • GET方法正常是因为GET请求通常不带请求体,不会触发这个解析问题;
  • 如果你是在Pages Router中开发接口(文件放在pages/api目录下),可以继续使用NextApiRequest,此时body会自动解析,无需手动处理。

内容的提问来源于stack exchange,提问作者Dario Coronel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:07:01