CLI · middleware
cem add middleware
Generate a new custom middleware that conforms to the enforced <name>.middleware.ts naming convention.
bash
cem add middleware requestLoggerCreates src/app/middlewares/requestLogger.middleware.ts wrapped with catchAsync so async errors are handled correctly.
Generated boilerplate
src/app/middlewares/requestLogger.middleware.tsts
import { NextFunction, Request, Response } from 'express';
import { catchAsync } from '../utils/catchAsync';
import logger from '../utils/logger';
const requestLogger = catchAsync(
async (req: Request, _res: Response, next: NextFunction) => {
logger.info(`Incoming Request ➔ [${req.method}] ${req.originalUrl}`);
next();
},
);
export default requestLogger;Register it
src/app.tsts
import requestLogger from './app/middlewares/requestLogger.middleware';
const app: Application = express();
app.use(requestLogger); // global loggerProtected core middlewares
These ship with every project and cannot be deleted via cem remove:
auth.middleware.ts— JWT role guardglobalErrorHandler.middleware.ts— JSON error mappernotFound.middleware.ts— 404 routerrateLimiter.middleware.ts— global + login limiters