route.js

Обработчики маршрутов (Route Handlers) позволяют создавать пользовательские обработчики запросов для заданного маршрута, используя Web API Request и Response.

HTTP-методы

Файл route позволяет создавать пользовательские обработчики запросов для заданного маршрута. Поддерживаются следующие HTTP-методы: GET, POST, PUT, PATCH, DELETE, HEAD и 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) {}

// Если `OPTIONS` не определён, Next.js автоматически реализует `OPTIONS` и установит соответствующий заголовок `Allow` в Response, основываясь на других методах, определённых в обработчике маршрута.
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) {}

// Если `OPTIONS` не определён, Next.js автоматически реализует `OPTIONS` и установит соответствующий заголовок `Allow` в Response, основываясь на других методах, определённых в обработчике маршрута.
export async function OPTIONS(request) {}

Полезно знать: Обработчики маршрутов доступны только внутри директории app. Вам не нужно использовать API-маршруты (pages) и обработчики маршрутов (app) вместе, так как обработчики маршрутов должны покрывать все варианты использования.

Параметры

request (опционально)

Объект request является объектом NextRequest, который расширяет Web API Request. NextRequest предоставляет дополнительный контроль над входящим запросом, включая удобный доступ к cookies и расширенному, разобранному URL-объекту nextUrl.

context (опционально)

type Params = {
  team: string
}

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

// Определите тип params в соответствии с параметрами вашего маршрута (см. таблицу ниже)

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

В настоящее время единственное значение context — это params, который представляет собой объект, содержащий динамические параметры маршрута для текущего маршрута.

ПримерURLparams
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

Обработчики маршрутов могут расширять Web API Response, возвращая объект NextResponse. Это позволяет легко устанавливать cookies, заголовки, выполнять редиректы и перезаписи. См. справочник API.

История версий

ВерсияИзменения
v13.2.0Добавлены обработчики маршрутов.