【问题标题】:Nestjs cannot resolve dependency index[0] when decorator is being used使用装饰器时,Nestjs 无法解析依赖索引 [0]
【发布时间】:2020-06-28 11:02:49
【问题描述】:

我是 NestJs 的新手,我有一个无法解决的问题。

UsersService 有两个依赖项

-TypeOrm UsersRepository 注入 -WalletsService 注入

Typeorm 注入由装饰器完成,如下所示。

//UsersService
@Injectable()
export class UsersService implements IUserService {
  constructor(
    @InjectRepository(Users)
    private usersRepository: Repository<Users>,
    private readonly walletsService: WalletsService,
  ) { }

每当我更改第一次注射时,它都无法解决。

可能我错过了什么。下面有所有照片和描述

//UsersModule
@Module({
  controllers: [UsersController],
  exports: [UsersService],
  imports: [WalletsModule, TypeOrmModule.forFeature([Users])],
  providers: [UsersService],
})

export class UsersModule { }

//WalletsModule
@Module({
  controllers: [WalletsController],
  exports: [WalletsService],
  imports: [TypeOrmModule.forFeature([Wallets])],
  providers: [WalletsService]
})

export class WalletsModule { }

[当用户存储库首次注入时]

Nest can't resolve dependencies of the UsersService (?, WalletsService). Please make sure that the argument UsersRepository at index [0] is available in the UsersService context.

Potential solutions:
- If UsersRepository is a provider, is it part of the current UsersService?
- If UsersRepository is exported from a separate @Module, is that module imported within UsersService?
  @Module({
    imports: [ /* the Module containing UsersRepository */ ]
  })

[Wallets Service 首次注入时]

Nest can't resolve dependencies of the UsersService (?, UsersRepository). Please make sure that the argument WalletsService at index [0] is available in the UsersService context.

Potential solutions:
- If WalletsService is a provider, is it part of the current UsersService?
- If WalletsService is exported from a separate @Module, is that module imported within UsersService?
  @Module({
    imports: [ /* the Module containing WalletsService */ ]
  })

提前谢谢你。我希望它的描述性足够。祝你有美好的一天!

【问题讨论】:

  • 请不要将明显是文本的内容发布为图像。您可以将错误消息复制为纯文本。
  • 这能回答你的问题吗? Nestjs can't resolve dependencies of XModel
  • 感谢杰伊的建议。我查了你回答的问题。正如我所理解的那样,导入数组应该只有模块而不是提供者。提供者数组反之亦然。正如您在问题中看到的那样,从这个角度来看,我的代码就像您建议的那样。在 UsersService 构造函数中第一个参数给出了注入错误,它不依赖于 WalletsService 或 TypeOrm 生成的 Repository。每当我切换参数时,另一个都会给出“无法解决”错误:/感谢您的评论和帮助。我经常使用您的 testing-nestjs 存储库。谢谢 ! - @JayMcDoniel
  • 你是对的! @JayMcDoniel。我查找了整个代码库,发现了一些与您指出的相同的错误。可能一个错误引发了另一个错误。感谢您的帮助!答案是你的,我不知道如何批准你的评论作为答案。如果你知道请帮忙,我可以关闭这个问题

标签: nestjs typeorm


【解决方案1】:

对于来自 cmets 的答案的后代:

imports 数组中有一项服务导致 Nest 尝试解决问题时出现问题。一般来说,知道Nest的错误是

的形式,就可以开始调试这些错误了

Nest 无法解析 UsersService 的依赖项 (。请确保索引 [] 处的参数 上下文中可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2022-08-13
    • 2022-01-25
    • 2019-12-19
    • 2022-01-02
    相关资源
    最近更新 更多