Как внедрить службу в Nest JS в хранилище typeorm? - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть 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 в мой репозиторий? Нужно ли создавать новый экземпляр этого?

...