如何从 Nuxt 3 服务器获取路由参数
Posted
技术标签:
【中文标题】如何从 Nuxt 3 服务器获取路由参数【英文标题】:How to get route parameters from Nuxt 3 server 【发布时间】:2021-12-12 05:57:32 【问题描述】:我有以下 API URL 之一。归根结底,对于我的用例,我必须使用这些 URL 中的哪一个并不重要,但目前都不起作用。
http://localhost:3000/api/track/TRACKID
或
http://localhost:3000/api/track?id=TRACKID
如何在 API 代码中获得 TRACKID
?以下代码生成undefined
。
export default async (req: IncomingMessage, res: ServerResponse) =>
console.log(req.id);
;
我尝试通过以下方式为第一个 URL 设置文件,但同样失败。它只是导致 URL 为 http://localhost:3000/api/track/[id]
PROJECT/server/api/track/[id].ts
对于第二个 URL,我使用了以下设置。
PROJECT/server/api/track.ts
【问题讨论】:
您应该尝试通过 Express 使用自定义端点:nuxtjs.org/docs/configuration-glossary/… 也检查一下:dev.to/dabit3/creating-api-routes-in-a-nuxt-app-1kg1 他在 Nuxt 3 上工作吗?您链接的内容似乎集中在 Nuxt 2。 确实如此。试一试。 【参考方案1】:import * as url from "url";
const params = url.parse(req.url as string, true).query;
const id = params
【讨论】:
欢迎来到 Stack Overflow,感谢您提供答案。您能否编辑您的答案以包括对您的代码的解释?这将有助于未来的读者更好地了解正在发生的事情,尤其是那些刚接触该语言并难以理解概念的社区成员。 这是在 nuxt 3 中执行此操作的“标准”方式吗?我在官方文档上找不到任何东西【参考方案2】:import useQuery from 'h3'
export default (req, res) =>
const id = useQuery(req)
https://github.com/unjs/h3 是将 api 放在一起的服务器。
【讨论】:
以上是关于如何从 Nuxt 3 服务器获取路由参数的主要内容,如果未能解决你的问题,请参考以下文章