javascript - Nest 无法解析对导出服务的依赖关系

标签 javascript typescript module dependencies nestjs

我正在尝试在 NestJS 中导出和导入服务。这看起来很简单,我认为它应该像这样工作,但我收到一条错误消息,指出 Nest 无法解析依赖项。

设置模块

该模块具有应导入的服务,并将其导出。

@Module({
  imports: [
    MongooseModule.forFeature([{ name: Setting.name, schema: SettingSchema }]),
  ],
  providers: [SettingsService],
  exports: [SettingsService],
})
export class SettingsModule {}

MsgraphModule

这个模块应该通过模块导入服务,因为服务被注入(inject)到他们的服务中。

@Module({
  imports: [SettingsModule],
  providers: [MsgraphService],
})
export class MsgraphModule {}

应用程序模块

@Module({
  imports: [
    MongooseModule.forRoot('mongodb://localhost/lead-import', {
      useCreateIndex: true,
    }),
    MsgraphModule,
    SettingsModule,
    ...
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

我在这里做错了什么?

最佳答案

问题是我使用了 @Inject() 装饰器,它只需要自定义依赖注入(inject)。

@Injectable()
export class MsgraphService {
  private client: Client;
  private authenticator;

  constructor(@Inject() private settingsService: SettingsService) {
    this.init();
    this.authenticator = new MSGraphAuthenticator();
  }

  ...
}

因此删除@Inject()就可以了。

关于javascript - Nest 无法解析对导出服务的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67817796/

相关文章:

reactjs - 如何创建具有 HTMLAttributes 作为 Prop 的组件

javascript - JS 使用 onSuccess() 语法

module - Dart App 组织子模块

python - 如何在交互式 session 中重新加载 Django 模型而不丢失我的本地人?

c++ - 如何在每个新模块中自动注入(inject)辅助类?

javascript - 我们应该在 React 的什么地方发起 API 请求?

javascript - 删除 DOM 事件观察器

javascript - Google Charts 第二个数据覆盖第一个数据和图表

typescript - "Variable ' X ' can be made constant", 'constant' 是什么意思?

javascript - 是否可以在 body 负载上触发鼠标悬停