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.
Beispiel | URL | params |
---|---|---|
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.0 | Route Handler wurden eingeführt. |