Documentation / zerotal / session / SessionMiddleware
Class: SessionMiddleware
Defined in: packages/session/src/SessionMiddleware.ts:42
Session middleware — boots the session for every request.
Loads session data from the driver into a fresh SessionManager and
attaches it as ctx.session before calling next(), then persists the
session (with any mutations) once the final response exists — registered via
HttpContext.onResponseReady, so it lands on a response rendered by the
exception handler just as it does on a successful one. IDs replaced by
SessionManager.regenerate are also destroyed server-side here.
Remarks
Two usage patterns:
Config-driven (recommended) — SessionProvider registers the
driver from config/session.ts; the middleware resolves it lazily from the
container on the first request.
app.use([SessionMiddleware]);
Explicit driver — useful in tests or when you don't use SessionProvider:
app.use([SessionMiddleware.withDriver(new CookieDriver(secret))]);
Throws
SessionDriverMissingError on the first request when no driver was supplied and none is registered in the container.
Extends
Extended by
Constructors
Constructor
new SessionMiddleware(
driver?):SessionMiddleware
Defined in: packages/session/src/SessionMiddleware.ts:45
Parameters
driver?
Returns
SessionMiddleware
Overrides
Properties
options
protectedoptions:SessionOptions={}
Defined in: packages/session/src/SessionMiddleware.ts:43
Subclasses must declare this with their default option values. TypeScript enforces this at compile time — forgetting it is a type error.
Overrides
Methods
with()
staticwith<T,Opts>(this,options): () =>InstanceType<T>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:48
Returns a zero-arg subclass with the given options deep-merged on top of the subclass defaults, usable directly in app.use([...]).
Type Parameters
T
T extends (...args) => BaseMiddleware<any>
Opts
Opts = T extends (...args) => BaseMiddleware<U> ? U : object
Parameters
this
T
options
Partial<Opts>
Returns
() => InstanceType<T>
Inherited from
afterResponse()?
optionalafterResponse(ctx):Promise<void>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:70
Parameters
ctx
Returns
Promise<void>
Inherited from
onError()?
optionalonError(ctx,error):Promise<void>
Defined in: packages/core/src/middleware/BaseMiddleware.ts:71
Parameters
ctx
error
Error
Returns
Promise<void>
Inherited from
withDriver()
staticwithDriver(driver): () =>SessionMiddleware
Defined in: packages/session/src/SessionMiddleware.ts:62
Build a zero-arg subclass with the given driver baked in, usable directly
in app.use([...]) without an anonymous class wrapper.
Parameters
driver
The session driver the returned middleware will use.
Returns
A constructable middleware class pre-bound to driver.
() => SessionMiddleware
Example
app.use([SessionMiddleware.withDriver(new CookieDriver(secret))]);