Nest 无法解析全局模块中服务的依赖关系

问题描述

我有一个名为 FirebaseModule 的全局模块,它导出一个 FirebaseService,我将此模块导入到 app.module.ts,然后我尝试在 {{ 1}} 并且它因缺少依赖项问题而失败。

有趣的是,如果我删除服务上的用法并仅在控制器上使用它,什么都不会失败,但如果我想在服务提供者中使用它,它就会开始失败。

我的代码

FirebaseService

UseRSService

app.module.ts

@Module({
  imports: [
    CustomLoggerModule,ConfigurationModule,TypeOrmModule.forRootAsync({
      useExisting: ConfigurationService,}),FirebaseModule,UsersModule,],controllers: [AppController],providers: [AppService],})
export class AppModule {}

firebase.module.ts

@Global()
@Module({
  imports: [],providers: [FirebaseService],exports: [FirebaseService],})
export class FirebaseModule {}

users.module.ts

@Module({
  imports: [CqrsModule,TypeOrmModule.forFeature([UsersRepository])],controllers: [UsersController],providers: [UseRSService,...CommandHandlers,...EventHandlers],exports: [UseRSService,})
export class UsersModule {}

users.controller.ts

@Controller('users')
@UseGuards(AuthGuard('firebase'))
export class UsersController {
  constructor(
    private readonly useRSService: UseRSService,private readonly firebaseService: FirebaseService,) {}
}

我收到以下错误

users.service.ts

解决方法

您的 UserService 中很可能有一个指向 FirebaseService 的循环文件引用。如果 Nest 能够解析类/提供者/注入令牌的名称,它会明确说明该令牌是什么,但是当它无法解析时,所有出来的都是 $("#stud_email").keyup(function () { $.ajax({ data: $(this).serialize(),url: "/validate_stud_username/",success: function (response) { if (response.is_taken == true) { $("#stud_email").addClass("invalid"); } else { $("#stud_email").addClass("valid"); } },}); check_stud_email(); }); Here's a little more information from the docs

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...