Nest.js 无法解析依赖关系

Ist*_*lor 9 typescript nestjs nestjs-config

ConfigService我正在尝试在我的中使用,users.module.ts但我得到了

错误:Nest 无法解析 UsersService(UserRepository、HttpService、?)的依赖项。请确保索引 [2] 处的参数 ConfigService 在 UsersModule 上下文中可用。

潜在的解决方案:

  • 如果 ConfigService 是提供者,它是当前 UsersModule 的一部分吗?
  • 如果 ConfigService 是从单独的 @Module 导出的,那么该模块是否会在 UsersModule 中导入?

我已将 ConfigModule 导入到我的 UsersModule 中,但仍然无法正常工作:(

应用程序模块.ts

@Module({
  imports: [
    ConfigModule.forRoot({
      expandVariables: true,
    }),
    TypeOrmModule.forRoot(),
    UsersModule,
    AuthModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})

export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

用户.module.ts

import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [ConfigModule, HttpModule, TypeOrmModule.forFeature([User])],
  controllers: [UsersController],
  providers: [UsersService],
  exports: [UsersService],
})

export class UsersModule {}
Run Code Online (Sandbox Code Playgroud)

用户.service.ts

export class UsersService {

 constructor(
    @InjectRepository(User)
    private readonly userRepository: Repository<User>,
    private readonly httpService: HttpService,
    private readonly configService: ConfigService,
  ) {}

}
Run Code Online (Sandbox Code Playgroud)

Tek*_*oon 11

您仍然需要在users.module.ts. 请参阅下面的示例。

应用程序模块.ts

@Module({
  imports: [
    ConfigModule.forRoot({
      expandVariables: true,
    }),
    TypeOrmModule.forRoot(),
    UsersModule,
    AuthModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})

export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

用户.module.ts

import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [ConfigModule, HttpModule, TypeOrmModule.forFeature([UserRepository])],
  controllers: [UsersController],
  providers: [UsersService, ConfigService],
  exports: [UsersService],
})

export class UsersModule {}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

谢谢。