Kembali ke Daftar Catatan

Middleware

#nextjs#middleware#webdev

Middleware di Next.js dipakai buat intercept request sebelum masuk ke route. Ini powerful banget buat:


Dasar Middleware

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

export function middleware(request: NextRequest) {
  return NextResponse.next(); // lanjut ke route berikutnya
}

Contoh: Redirect dari /admin ke /login

export function middleware(request: NextRequest) {
  const isLoggedIn = request.cookies.get('token');

  if (!isLoggedIn) {
    return NextResponse.redirect(new URL('/login', request.url));
  }

  return NextResponse.next();
}

export const config = {
  matcher: '/admin/:path*', // hanya aktif di route `/admin`
};

matcher config

Untuk menentukan URL mana aja yang kena middleware.

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

Wildcard :path* artinya include semua sub-route di dalamnya.


Catatan penting


Use-case umum

Catatan Terkait