route.js

Route Handler (Route-Handler) ermöglichen es Ihnen, benutzerdefinierte Anfragehandler für eine bestimmte Route mithilfe der Web-Request- und Response-APIs zu erstellen.

HTTP-Methoden

Eine Route-Datei erlaubt die Erstellung benutzerdefinierter Anfragehandler für eine bestimmte Route. Die folgenden HTTP-Methoden werden unterstützt: GET, POST, PUT, PATCH, DELETE, HEAD und OPTIONS.

export async function GET(request: Request) {}

export async function HEAD(request: Request) {}

export async function POST(request: Request) {}

export async function PUT(request: Request) {}

export async function DELETE(request: Request) {}

export async function PATCH(request: Request) {}

// Wenn `OPTIONS` nicht definiert ist, implementiert Next.js automatisch `OPTIONS` und setzt den entsprechenden Response-Header `Allow` basierend auf den anderen in der Route definierten Methoden.
export async function OPTIONS(request: Request) {}
export async function GET(request) {}

export async function HEAD(request) {}

export async function POST(request) {}

export async function PUT(request) {}

export async function DELETE(request) {}

export async function PATCH(request) {}

// Wenn `OPTIONS` nicht definiert ist, implementiert Next.js automatisch `OPTIONS` und setzt den entsprechenden Response-Header `Allow` basierend auf den anderen in der Route definierten Methoden.
export async function OPTIONS(request) {}

Wichtig zu wissen: Route Handler sind nur innerhalb des app-Verzeichnisses verfügbar. Sie müssen nicht API-Routen (pages) und Route Handler (app) gemeinsam verwenden, da Route Handler alle Anwendungsfälle abdecken sollten.

Parameter

request (optional)

Das request-Objekt ist ein NextRequest-Objekt, das die Web-Request-API erweitert. NextRequest gibt Ihnen zusätzliche Kontrolle über die eingehende Anfrage, einschließlich einfachem Zugriff auf cookies und einem erweiterten, geparsten URL-Objekt nextUrl.

context (optional)

type Params = {
  team: string
}

export async function GET(request: Request, context: { params: Params }) {
  const team = context.params.team // '1'
}

// Definieren Sie den Parametertyp entsprechend Ihren Routenparametern (siehe Tabelle unten)

export async function GET(request, context: { params }) {
  const team = context.params.team // '1'
}

Derzeit ist der einzige Wert von context params, ein Objekt, das die dynamischen Routenparameter für die aktuelle Route enthält.

BeispielURLparams
app/dashboard/[team]/route.js/dashboard/1{ team: '1' }
app/shop/[tag]/[item]/route.js/shop/1/2{ tag: '1', item: '2' }
app/blog/[...slug]/route.js/blog/1/2{ slug: ['1', '2'] }

NextResponse

Route Handler können die Web Response API erweitern, indem sie ein NextResponse-Objekt zurückgeben. Dies ermöglicht das einfache Setzen von Cookies, Headern, Redirects und Rewrites. Siehe API-Referenz.

Versionsverlauf

VersionÄnderungen
v13.2.0Route Handler wurden eingeführt.