Route Handler-filer exporterar namngivna HTTP-metoder (GET, POST etc.), inte en default export.
Förklaring
Route Handlers i App Router (app/api/.../route.js) fungerar annorlunda än pages. De exporterar namngivna funktioner som matchar HTTP-metoder: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. En default export har ingen effekt och Next.js vet inte hur det ska hantera requests till den routen.
Felet är vanligast vid migrering från Pages Router, där API-routes använde en default export med ett req/res-mönster.
Vanliga orsaker
Default export i en route.js-fil i stället för named HTTP-metodexport. route.js exporterar en React-komponent av misstag.
Lösning
Exportera namngivna HTTP-metoder:
// Fel — Pages Router-stil, fungerar inte i app/
export default function handler(req, res) {
res.json({ ok: true });
}
// Rätt — App Router Route Handler
export async function GET(request) {
return Response.json({ ok: true });
}
export async function POST(request) {
const body = await request.json();
return Response.json({ received: body });
}