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

如何在Nuxt 3服务端API中获取路由参数与查询参数

你当前代码输出undefined的核心原因有两个:

  1. 原生IncomingMessage请求对象本身没有内置id属性,直接访问自然返回空
  2. 你使用的是基于文件系统路由的服务端框架(如Nuxt3/Nitro),路由参数、查询参数都需要通过框架提供的专用方法获取,不能直接从原生请求对象读取。

方案1:使用路径参数形式(/api/track/TRACKID)

  • 你的文件路径PROJECT/server/api/track/[id].ts是正确的,该路径对应路由规则为/api/track/:id,可以正常匹配/api/track/任意TRACKID值的请求,你所说的“只能识别到带[id]的路径”属于测试操作错误,直接访问http://localhost:3000/api/track/123即可正常命中该接口文件。
  • 正确的参数获取代码:
export default defineEventHandler(async (event) => {
  // 从动态路由中获取id参数
  const trackId = getRouterParam(event, 'id')
  console.log(trackId)
  // 后续业务逻辑
})

方案2:使用查询参数形式(/api/track?id=TRACKID)

  • 你的文件路径PROJECT/server/api/track.ts是正确的,对应路由为/api/track,支持携带查询参数访问。
  • 正确的参数获取代码:
export default defineEventHandler(async (event) => {
  // 从查询参数中获取id值
  const { id: trackId } = getQuery(event)
  console.log(trackId)
  // 后续业务逻辑
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:06:01