如何使用 NextJS 13 创建无服务器函数(GET 请求)

how to create serverless functions (get requests) with nextjs 13

提问人:Th0rgal 提问时间:5/6/2023 更新时间:5/6/2023 访问量:471

问:

我习惯于通过nextjs无服务器函数创建简单的api端点。我的页面文件夹中有一个 api 文件夹,其中包含我的所有端点。我刚刚使用 nextjs 13 创建了一个新存储库,它使用应用程序路由器而不是页面路由器。我不明白如何创建新路线。

我在文档中找到了这一点:

import { NextResponse } from "next/server";

export async function GET(request: Request) {
  return NextResponse.json({ hello: "Next.js" });
}

所以我试图将它添加到 中,但查询 localhost:3000/api/route 返回 404 错误。我错过了什么?app/api/route.ts

下一个.js 无服务器 next.js13

评论


答:

2赞 alexortizl 5/6/2023 #1

在新的应用路由器中,该文件具有特殊含义,不是终结点 URL 的一部分。因此,在您的情况下,对于生成的 url 是 for,您需要将其构建为或 for it 将是等。该文件指示该文件中定义的处理程序适用于与父文件夹对应的路径。此外,需要调用该文件,调用它将不起作用。route.tsapp/api/route.tslocalhost:3000/apilocalhost:3000/api/routeapp/api/route/route.tslocalhost:3000/api/foo/barapp/api/foo/bar/route.tsroute.tsroute.js|tssomething_else.ts