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.
