Skip to content

route.js

Route Handlers allow you to create custom request handlers for a given route using the Web Request and Response APIs.

route.ts
exportasyncfunctionGET() {returnResponse.json({ message:'Hello World' })}

Reference

HTTP Methods

A route file allows you to create custom request handlers for a given route. The following HTTP methods are supported: GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS.

route.ts
exportasyncfunctionGET(request:Request) {}exportasyncfunctionHEAD(request:Request) {}exportasyncfunctionPOST(request:Request) {}exportasyncfunctionPUT(request:Request) {}exportasyncfunctionDELETE(request:Request) {}exportasyncfunctionPATCH(request:Request) {}// If `OPTIONS` is not defined, Next.js will automatically implement `OPTIONS` and set the appropriate Response `Allow` header depending on the other methods defined in the Route Handler.exportasyncfunctionOPTIONS(request:Request) {}

Parameters

request (optional)

The request object is a NextRequest object, which is an extension of the Web Request API. NextRequest gives you further control over the incoming request, including easily accessing cookies and an extended, parsed, URL object nextUrl.

route.ts
importtype { NextRequest } from'next/server'exportasyncfunctionGET(request:NextRequest) {consturl=request.nextUrl}

context (optional)

app/dashboard/[team]/route.ts
exportasyncfunctionGET( request:Request, { params }: { params:Promise<{ team:string }> }) {const { team } =await params}
ExampleURLparams
app/dashboard/[team]/route.js/dashboard/1Promise<{ team: '1' }>
app/shop/[tag]/[item]/route.js/shop/1/2Promise<{ tag: '1', item: '2' }>
app/blog/[...slug]/route.js/blog/1/2Promise<{ slug: ['1', '2'] }>

Examples

Handling cookies

route.ts
import { cookies } from'next/headers'exportasyncfunctionGET(request:NextRequest) {constcookieStore=awaitcookies()consta=cookieStore.get('a')constb=cookieStore.set('b','1')constc=cookieStore.delete('c')}

Version History

VersionChanges
v15.0.0-RCcontext.params is now a promise. A codemod is available
v15.0.0-RCThe default caching for GET handlers was changed from static to dynamic
v13.2.0Route Handlers are introduced.
close