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

如何在Nuxt3中获取context的req及请求体?

在Nuxt3中获取请求体的正确方法

1. 使用官方推荐的useBody()组合式函数

Nuxt3内置了专门解析请求体的useBody(),无需手动处理原始req对象,直接调用即可拿到解析后的请求体:

// 页面、组件或自定义composable中
const body = await useBody()
console.log(body)

⚠️ 注意:该方法是异步的,必须配合await使用,且仅能在服务端渲染(SSR)场景或Server路由中生效。

2. 在Server API路由中通过readBody()获取

如果是在server/api目录下的API接口中,可通过readBody()工具函数解析请求体:

// server/api/xxx.post.ts
export default defineEventHandler(async (event) => {
  const body = await readBody(event)
  // 处理请求体逻辑
  return { success: true, data: body }
})

readBody()支持解析JSON、表单等多种格式的请求体,是处理API路由请求体的标准方式。

3. 服务器中间件中解析并共享请求体

若需要在全局中间件中统一处理请求体,可先解析后挂载到事件上下文:

// server/middleware/parse-body.ts
export default defineEventHandler(async (event) => {
  const body = await readBody(event)
  event.context.requestBody = body
})

后续在页面或API路由中,可通过event.context.requestBody直接获取已解析的请求体。


为什么之前的方法返回undefined?
Nuxt3中的req是原始Node.js请求对象,默认不会自动解析请求体,因此直接访问req.body会得到undefined,必须使用官方提供的解析函数完成请求体的解析工作。

内容的提问来源于stack exchange,提问作者Yumi Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:22:39