У меня есть UserRepository
, который обрабатывает создание / аутентификацию пользователей в базе данных. Я хочу выполнить хеширование и проверку пароля пользователя, поэтому я создал для этого отдельную службу, пытаясь следовать принципу единой ответственности, который объявлен так:
@Injectable()
export default class HashService
И я импортирую его в свой module:
@Module({
imports: [TypeOrmModule.forFeature([UserRepository])],
controllers: [AuthController],
providers: [AuthService, HashService],
})
export class AuthModule {}
Я хочу sh вставить его в UserRepository
, я попытался передать его как параметр конструктора, но он не сработал, потому что его базовый класс уже принимает 2 параметра, поэтому Я пытался внедрить свой сервис после них так:
@EntityRepository(User)
export default class UserRepository extends Repository<User> {
constructor(
entityManager: EntityManager,
entityMetadata: EntityMetadata,
@Inject() private readonly hashService: HashService,
) {
super();
}
// Logic...
}
Но hashService
не был определен, я также пытался без декоратора @Inject()
. Как лучше всего внедрить HashService
в мой репозиторий? Нужно ли создавать новый экземпляр этого?