typescript - Nest.js kan inte lösa beroenden


Jag försöker använda ConfigService i min users.module.ts men jag får ett

Fel: Nest kan inte lösa beroenden för UsersService (UserRepository, HttpService, ?). Vänligen se till att argumentet ConfigService på index [2] är tillgängligt i UsersModule-kontexten.

Potentiella lösningar:

  • Om ConfigService är en leverantör, är det en del av det nuvarande UsersModule?
  • Om ConfigService exporteras från en separat @Module, importeras den modulen inom UsersModule?

Jag har importerat ConfigModule i mitt UsersModule men det fungerar fortfarande inte :(

app.module.ts

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

export class AppModule {}

users.module.ts

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

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

export class UsersModule {}

users.service.ts

export class UsersService {

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

}

Svar #1

Du skulle fortfarande behöva deklarera ConfigService i providers i users.module.ts. Se exempel nedan.

app.module.ts

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

export class AppModule {}

users.module.ts

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

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

export class UsersModule {}

Hoppas det här hjälper.

Tack.

Relaterade artiklar