我习惯于通过nextjs无服务器函数创建简单的API端点。我在pages文件夹中有一个API文件夹,它包含了我所有的端点。我刚刚用nextjs 13创建了一个新的仓库,它使用了app路由器而不是pages路由器。我不知道如何创建新的路线。
我在docs中找到了这个:
import { NextResponse } from "next/server";
export async function GET(request: Request) {
return NextResponse.json({ hello: "Next.js" });
}
所以我尝试在app/api/route.ts
中添加它,但是查询localhost:3000/API/route返回404错误。我错过了什么?
1条答案
按热度按时间wko9yo5t1#
在新的应用程序路由器中,
route.ts
文件具有特殊含义,并且不是端点url的一部分。因此,对于app/api/route.ts
,结果URL是localhost:3000/api
,对于localhost:3000/api/route
,您需要将其结构化为app/api/route/route.ts
,或者对于localhost:3000/api/foo/bar
,它将是app/api/foo/bar/route.ts
等。route.ts
文件指示该文件中定义的处理程序应用于父文件夹对应的路径。此外,文件需要被称为route.js|ts
,调用它something_else.ts
将不起作用。