PassFront
  1. PassFront
  2. База знаний
  3. Server Side Rendering

Что такое middleware в Next.js и для чего его используют?

Server Side Rendering

Middleware — код, который выполняется до обработки запроса, на границе сети (edge), и может перенаправить, переписать адрес или изменить заголовки.

Где живёт

Файл middleware.ts в корне проекта. Условие срабатывания задаётся через config.matcher.

import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(req: NextRequest) {
  const token = req.cookies.get('session')?.value;
  if (!token && req.nextUrl.pathname.startsWith('/dashboard')) {
    return NextResponse.redirect(new URL('/login', req.url));
  }
  return NextResponse.next();
}

export const config = { matcher: ['/dashboard/:path*'] };

Типичные задачи

  • Защита маршрутов по наличию сессии.
  • Локализация: редирект на язык пользователя.
  • A/B тесты, добавление заголовков безопасности, перезапись URL.

Ограничения

Работает в упрощённой среде без полного набора Node.js API, поэтому тяжёлые операции и обращения к базе не делают. Проверку прав лучше дублировать на сервере данных.

Коротко для собеседования

Middleware — быстрый перехватчик запросов для редиректов и простых проверок, но не замена полноценной авторизации.

Другие вопросы раздела