advanced
Nitro server
Use Nuxt server routes, event handlers, runtime config, presets, caching, and edge/server deployment targets.
Nitro powers Nuxt server routes, middleware, and deploy adapters. Files in `server/api` become HTTP handlers; `server/middleware` runs on each request; `runtimeConfig` separates public and private env.
// server/api/health.get.ts
export default defineEventHandler(() => ({ ok: true }));
Presets target Node, serverless, or edge. Caching headers and storage drivers integrate at the Nitro layer.
On interviews: when to use server routes versus external API, cold starts on serverless, and keeping heavy work out of edge limits.
Common pitfalls: long CPU in edge handlers, exposing private config keys to client, and missing error handling in event handlers.
The trade-off is colocated BFF simplicity versus cold-start and runtime limits on serverless or edge presets.
Checklist:
- Colocate BFF handlers with UI needs.
- Split public/private runtimeConfig.
- Choose preset for latency and ops model.
- Add observability on server routes.