Contexto
Al migrar un proyecto a Next.js 16, el archivo middleware.ts dejo de funcionar como antes. El framework ahora usa proxy.ts como reemplazo directo.
Lo que aprendi
En Next.js 16, middleware.ts se renombro a proxy.ts. La diferencia principal es que proxy.ts corre exclusivamente en el runtime de Node.js, lo que significa que tienes acceso completo a modulos node:*, ORMs y cualquier dependencia que necesite Node.js.
Cambios clave:
- Ubicacion:
proxy.tsva al mismo nivel queapp/(en la raiz o dentro desrc/si usas--src-dir) - Runtime: Solo Node.js (antes middleware podia correr en Edge)
- APIs async:
await cookies(),await headers()- todas las APIs de request son async ahora
// proxy.ts (antes middleware.ts)
import { NextRequest, NextResponse } from "next/server";
export async function middleware(request: NextRequest) {
const cookieStore = await cookies();
// Logica de auth, redirects, etc.
return NextResponse.next();
}
export const config = {
matcher: ["/dashboard/:path*"],
};