Nest.js 无法解析依赖 [英] Nest.js can't resolve dependencies

查看:100
本文介绍了Nest.js 无法解析依赖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to use ConfigService in my users.module.ts but I am getting an

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

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 但它仍然无法工作:(

I have imported the ConfigModule in my UsersModule but still its not working :(

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.参考下面的例子.

You would still have to declare ConfigService in the providers of users.module.ts. Refer example below.

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

希望这会有所帮助.

谢谢.

这篇关于Nest.js 无法解析依赖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆