Express
Session handling
Implement a session context for requests and use the data in all async execution.
Express middleware
import { AsyncLocalStorage } from "async_hooks";
import crypto from "crypto";
export const asyncLocalStorage = new AsyncLocalStorage();
export enum SessionMapKey {
SESSION_ID = "sessionId",
USER_ID = "userId",
}
export function SessionMiddleware(_req, _res, next) {
const sessionMap = new Map();
sessionMap.set(SessionMapKey.SESSION_ID, crypto.randomUUID());
asyncLocalStorage.run(sessionMap, () => {
next();
});
}Access session context
Set entry
Usage
Add middleware to server (or a route)
Use in a log message
Last updated