Functional middleware in NestJS is a middleware defined as a plain function rather than a class. It follows the same (req, res, next) signature as Express middleware:
export function logger(req: Request, res: Response, next: NextFunction) {
console.log('Request...');
next();
}Applied via consumer.apply(logger).forRoutes(...). Functional middleware should be preferred whenever the middleware doesn’t need dependencies, as it’s simpler and avoids class boilerplate. Global functional middleware can be applied via app.use(logger), though this loses DI access.