Middleware
Request middleware for authentication, logging, and request modification.
server/middleware/auth.ts
import { defineMiddleware } from "nitro/h3";
export default defineMiddleware((event) => {
event.context.auth = { name: "User " + Math.round(Math.random() * 100) };
});
Middleware functions run before route handlers on every request. They can modify the request, add context, or return early responses.
Defining Middleware
Create files in server/middleware/. They run in alphabetical order:
auth.ts
import { defineMiddleware } from "nitro/h3";
export default defineMiddleware((event) => {
event.context.auth = { name: "User " + Math.round(Math.random() * 100) };
});
Middleware can:
- Add data to
event.contextfor use in handlers - Return a response early to short-circuit the request
- Modify request headers or other properties
Accessing Context in Handlers
Data added to event.context in middleware is available in all subsequent handlers:
server.ts
import { defineHandler } from "nitro/h3";
export default defineHandler((event) => ({
auth: event.context.auth,
}));