Как получить параметры маршрута с сервера Nuxt 3
У меня есть один из следующих URL-адресов API. В конце концов, для моего варианта использования не имеет значения, какой из этих URL-адресов мне придется использовать, но в настоящее время ни один из них не работает.
http://localhost:3000/api/track/TRACKID
или
http://localhost:3000/api/track?id=TRACKID
Как бы я получил
TRACKID
в коде API? Следующий код приводит к
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
4 ответа
import { useQuery } from 'h3'
export default (req, res) => {
const { id } = useQuery(req)
}
https://github.com/unjs/h3 — это сервер, на котором собран API.
Для новых разработчиков nuxt3
Маршрут h3 теперь дает вам CompatibilityEvent вместо использования req и res.
Поэтому вы можете использовать его следующим образом:
export default defineEventHandler(async (event) => {
const id = event.context.params.id;
// Use the id here
});
import * as url from "url";
const params = url.parse(req.url as string, true).query;
const {id} = params
У меня нет ответа, но я спросил на форумах Nuxt, так как считаю, что эта функция должна быть изначально поддерживаться. Возможно, там ответят: https://github.com/nuxt/framework/discussions/1535