Middleware
Request middleware for authentication, logging, and request modification.
server
middleware
auth.ts
nitro.config.ts
package.json
server.ts
tsconfig.json
vite.config.ts
import { defineMiddleware } from "nitro";
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:
server/middleware/auth.ts
import { defineMiddleware } from "nitro";
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";
export default defineHandler((event) => ({
auth: event.context.auth,
}));