我想从 API 调用中的请求获取查询参数。我如何在服务器端检索它?
import prisma from "@/app/lib/prisma";
import { NextApiRequest, NextApiResponse } from 'next'
import { Context } from "vm";
export async function getServerSideProps(ctx: Context) {
const { igenykod } = ctx.params;
return {
props: {
igenykod
},
};
};
export async function GET(
req: NextApiRequest,
res: NextApiResponse
) {
const kod = req.query.igenykod as string
const igenystatusz = await prisma.igenystatusz.findMany({
where: {
igenykod: "CK1"
}
});
return new Response(JSON.stringify(igenystatusz));
}
在此代码中,req.query 未定义。我读过有关 getServerSideProps 的内容,但我不想为请求创建页面。我可以像 ExpressJS 路由一样简单吗?
app
目录(路由器)中,您可以通过以下方式在 API 路由中获取查询字符串(又名
?search=value
):
import { NextRequest, NextResponse } from "next/server";
export async function GET(req: NextRequest) {
const { searchParams } = new URL(req.url);
console.log(searchParams.get("igenykod"));
return new Response("...");
}
API 路由处理程序仅传递请求,其类型是
NextRequest
而不是 NextApiRequest
,适用于 pages
路由器(仅在 getServerSideProps
起作用的情况下)。