NestJS。无法从其他模块注入存储库

时间:2020-10-09 14:38:44

标签: nestjs typeorm

我正在尝试使用另一个模块中定义的 typeorm自定义存储库

遵循documentation

如果要在导入TypeOrmModule.forFeature的模块之外使用存储库,则需要重新导出由其生成的提供程序。您可以通过导出整个模块来做到这一点,就像这样:

@Module({
  imports: [TypeOrmModule.forFeature([Role])],
  exports: [TypeOrmModule]
})
export class RoleModule {}

现在,如果我们在U​​serHttpModule中导入UsersModule,则可以在后一个模块的提供程序中使用@InjectRepository(User)。

就我而言:

@Module({
  imports: [RoleModule],
  providers: [UsersService],
  controllers: [UsersController]
})
export class UserModule {}

现在,当我注入角色存储库时

export class UserService {
  constructor(@InjectRepository(Role) private roleRepository: Repository<Role>) {}
}

我有一个错误: Nest can't resolve dependencies of the UserService (?).

是我还是文档不正确? 有人可以建议这里有什么错误或给出更正的示例吗?

1 个答案:

答案 0 :(得分:1)

尝试将TypeOrmModule.forFeature([Role])添加到导入中:

@Module({
  imports: [TypeOrmModule.forFeature([Role]), RoleModule], // <-- here
  providers: [UsersService],
  controllers: [UsersController]
})
export class UserModule {}