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

标签 typescript nestjs nestjs-config

我正在尝试在我的 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/

相关文章:

javascript - JSON.stringify() - 对象的自定义序列化器

node.js - 在 Observable 中返回自己的静态值

javascript - Nest.js : initialization of property from controller's superclass

nestjs - 全局安装 NestJS 9.2 后出现警告 "use @jridgewell/sourcemap-codec instead"和 "deprecated rimraf"

javascript - 如何在 Angular 8 中创建通用请求服务

typescript - 条件类型与可选属性不能很好地配合

typescript - 如何正确设置 NestJS 中的配置?

nestjs - 如何在 Nestjs DatabaseModule 中使用 ConfigService

typescript - 如何将身份函数严格键入为特定变换?

NestJS/弹性 apm : agent does not record database query spans