Middleware DI Resolution in Modules
Class-based middleware participates in DI, but only if its dependencies are resolvable within the module that configures it.
Codetypescript
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
constructor(private readonly configService: ConfigService) {}
use(req: Request, res: Response, next: NextFunction) {
if (this.configService.get('LOGGING')) {
console.log(`[REQ] ${req.method} ${req.originalUrl}`);
}
next();
}
}
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(LoggerMiddleware)
.forRoutes('cats');
}
}This app throws a dependency resolution error at startup when CatsModule loads. What is the bug and how do you fix it?