typescript 如何从Nuxt 3服务器获取路由参数

p5fdfcr1  于 2022-12-14  发布在  TypeScript
关注(0)|答案(3)|浏览(176)

我有下面的一个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
vd8tlhqk

vd8tlhqk1#

编辑:更新了我的答案,现在Nuxt 3已经发布。

export default defineEventListener(event => {
  const query = getQuery(event)
})

https://github.com/unjs/h3是将API组合在一起的服务器。

qvtsj1bj

qvtsj1bj2#

import * as url from "url";

const params = url.parse(req.url as string, true).query;
const {id} = params
dxpyg8gm

dxpyg8gm3#

适用于较新的nuxt3开发

h3路由现在为您提供一个CompatibilityEvent,而不是使用req和res。
因此,您可以这样使用它:

export default defineEventHandler(async (event) => {
     const id = event.context.params.id;

     // Use the id here
});

相关问题