Ребят доброго вечера. Вопрос по nest.js.
Есть клас миделвары с default injection scope, и заинжекченным в него логгером.
@Injectable()
class FooMiddleware implements NestMiddleware {
constructor(
private logger:LoggerService
){
this.logger.setContext(this.constructor.name)
}
use(req: Request, res: Response, next: NextFunction) {
this.logger.log('Request...');
next();
}
}
При этом модуль логгера находится в глобальной области видимости.
@Global()
@Module({
controllers: [],
providers: [LoggerService],
exports: [LoggerService],
})
export class LoggerModule {}
Нест должен создать синглтон миделвары и это так и работает, если логгер сервис тоже с default injection scope. Но, если установить Логгеру { scope: transient }, то Нест начинает создаваться инстанс миделвары на каждого ее потребителя. Плюс, при каждом создании объекта миделвары, создается инстанс логгера, и создается коряво.
Кто-то сталкивался с чем-то подобным? Как это можно победить?