如何获取 Next.js 中参数的值 13

Mar*_*ias 5 typescript next.js

我想从 GET 端点获取参数的值:

/api/image/id
Run Code Online (Sandbox Code Playgroud)

文件结构为:

src/app/api/image/[id]/route.ts
Run Code Online (Sandbox Code Playgroud)

当我尝试检索 id 参数时,这会导致null.

import { NextRequest, NextResponse } from "next/server";

export async function GET(request: NextRequest) {
  const id = request.nextUrl.searchParams.get("id");
  return NextResponse.json({ id }, { status: 200 }); // { "id": null }
Run Code Online (Sandbox Code Playgroud)

我认为这与文件夹结构有关。但我找不到合适的文件夹结构。

提前致谢!

我尝试将route.ts重命名为[id].ts,并将route.ts移动到图像文件夹中。

Mar*_*ias 7

我刚刚发现在Next.js 13.2+中,GET请求的第二个参数是开发人员找到参数的地方。

\n
import { NextRequest, NextResponse } from "next/server";\n\n                                                // \xe2\xac\x87\xef\xb8\x8f Here is the `params` property\nexport async function GET(request: NextRequest, { params }: { params: { id: string } } ) {\n\n  return NextResponse.json({ id: params.id }, { status: 200 });\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试从请求对象中获取它但没有成功。也许将来它会改变,因为它是早期版本。

\n