Concept Flow - Middleware patterns with hooks
Request Received
Run Hook 1 Middleware
Run Hook 2 Middleware
Run Final Handler
Send Response
Middleware hooks run in order on a request, each can modify or stop the flow before final handling.
import { beforeNavigate } from '$app/navigation'; beforeNavigate(() => { console.log('Middleware hook runs'); });
| Step | Hook Called | Action Taken | Next Step |
|---|---|---|---|
| 1 | beforeNavigate Hook | Logs 'Middleware hook runs' | Continue to next middleware or handler |
| 2 | No more hooks | Final handler runs | Send response |
| 3 | End | Response sent | Execution stops |
| Variable | Start | After Hook 1 | After Final Handler | Final |
|---|---|---|---|---|
| navigationAllowed | true | true | true | true |
| logMessages | [] | ['Middleware hook runs'] | ['Middleware hook runs'] | ['Middleware hook runs'] |
Middleware hooks run in order before final handlers. Each hook can modify or stop the flow. In Svelte, hooks like beforeNavigate intercept navigation. Hooks run first, then final handler executes. Use hooks to add logging, checks, or redirects.