如何使用Nest.js + TypeORM创建基本服务类?

时间:2020-05-06 18:22:03

标签: nestjs typeorm

我正在使用Nest.js + TypeORM,在尝试向服务类添加继承时遇到了障碍。

我想拥有一个扩展自基本服务类的User服务类,并继承它具有的所有方法。

这就是我所做的:

export class BaseService<T> {

  private repo;
  constructor(repo: Repository<T>){
    this.repo = repo;
  }

  async findAll(opts?): Promise<T[]> {
    return this.repo.find(opts);
  }

  ......
}

然后在我的用户服务上:

export class UserService extends BaseService<User> {
  constructor(
    @InjectRepository(User)
    private userRepository: Repository<User>,
    private readonly mailerService: MailerService,
  ) {
    super(userRepository);
  }
}

这在我只需要Service类中的单个存储库的情况下很好用,但是一旦我需要更多诸如productRepository的存储库,就可以看到,由于构造函数被硬编码为接受单个存储库,因此它将失败。

我似乎无法弄清楚实现这种目标的最优雅的方法是什么。

有人知道吗?

0 个答案:

没有答案