gpt4 book ai didi

typescript - Nest.js 无法解析依赖项

转载 作者:行者123 更新时间:2023-12-05 01:13:28 24 4
gpt4 key购买 nike

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

Error: Nest can't resolve dependencies of the UsersService (UserRepository, HttpService, ?). Please make sure that the argument ConfigService at index [2] is available in the UsersModule context.

可能的解决方案:

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

我已经在我的 UsersModule 中导入了 ConfigModule,但它仍然无法正常工作 :(

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,
) {}

}

最佳答案

您仍然需要在 users.module.ts 的提供者中声明 ConfigService。引用下面的例子。

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 {}

希望这会有所帮助。

谢谢。

关于typescript - Nest.js 无法解析依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com