下13.4 api文件夹在哪里?

Cap*_*i-N 9 next.js next.js13

我有一个关于 Next 13.4 的问题。从今天起我只能使用 Next 13.4。我想知道 api 文件夹去了哪里。此版本中不再创建它。它在 13.3 中仍然有效。我现在如何发出 POST 或 GET 请求并通过 NextResponse 返回结果?

小智 20

如果没有 /api 文件夹,您可以在 /app 文件夹中创建一个。

在Next 13.4中,api端点被视为route.js,就像page.js一样。

例如/app/api/home/route.js

import { NextResponse } from 'next/server';

export async function GET() {
  return NextResponse.json({ name: 'Anuj Singh' });
}
Run Code Online (Sandbox Code Playgroud)

因此,如果您从浏览器导航到 /api/home 您将看到结果。\

来自官方文档的更多信息:https ://nextjs.org/docs/app/building-your-application/routing/router-handlers


小智 9

简短回答:没有。在 13.4 中,Next Team 发布了稳定的应用程序目录。所以您可能在设置项目时使用了此功能。这里是与该版本相关的 NextJS 博客的链接。

在阅读官方文档时,我偶然发现了此信息
简而言之:这相当于页面目录中的 API 路由。


Dan*_*ila 5

您仍然可以将 API 路由与pages/api目录一起使用,它们将继续工作而无需任何更改。例如,如果您有一个正在进行的项目,则不必立即迁移它,您仍然可以在一段时间内坚持使用旧方法。如果您使用的某种 CLI 不会创建此文件夹,您可以自己手动创建。

不过,Next.js v13.4 有一个新功能,称为Route Handlers。它仅在app目录内可用。它相当于 API 路由,这意味着您不需要同时使用 API 路由和路由处理程序。如果您正在开始一个新项目,您可能希望立即开始使用路由处理程序。