【发布时间】:2020-06-06 10:17:47
【问题描述】:
我有一个UserRepository,它处理在数据库前面创建/验证用户。我想对用户的密码进行哈希和验证,所以我为此创建了一个单独的服务,试图遵循单一责任原则,声明如下:
@Injectable()
export default class HashService
然后我将它导入到我的模块中:
@Module({
imports: [TypeOrmModule.forFeature([UserRepository])],
controllers: [AuthController],
providers: [AuthService, HashService],
})
export class AuthModule {}
我希望将它注入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 注入我的存储库的最佳方法是什么?我必须创建它的新实例吗?
【问题讨论】:
标签: typescript nestjs typeorm