Nextjs API POST 请求正文未被解析

How*_*opa 11 reactjs next.js

我在 nextjs 中设置了一个简单的 api 路由,并尝试解析 post 请求数据的正文,但当我使用语法时得到“未定义”console.log(req.body.name)

如果我将请求正文输出到控制台,console.log(req.body)我会得到看起来像纯字符串的内容:

------WebKitFormBoundaryMJBujN4oNXLxcU96
Content-Disposition: form-data; name="name"

bilbo.com
------WebKitFormBoundaryMJBujN4oNXLxcU96
Content-Disposition: form-data; name="price"

2995
------WebKitFormBoundaryMJBujN4oNXLxcU96--
Run Code Online (Sandbox Code Playgroud)

这是函数:

export default (req, res) => {
    console.log(req.method);
    console.log(req.body);
    console.log(req.body.name);
    res.status(200).json( { items: [ { req : req.method } ] } )
}
Run Code Online (Sandbox Code Playgroud)

以及请求标头中的数据:

在此输入图像描述

小智 26

这个问题很老了,但是如果其他人碰巧最终来到这里:

根据文档

req.body - 包含按内容类型解析的正文的对象,如果没有发送正文,则为 null

这意味着如果您想将 req.body 解析为 JSON,则必须在请求标头中设置 'Content-Type': 'application/json' 标头:

fetch(url, {
    body,
    method,
    headers: new Headers({
      'Content-Type': 'application/json',
      Accept: 'application/json',
    }),
  })
Run Code Online (Sandbox Code Playgroud)