javascript - Nest JS 无法解析服务中的依赖关系

标签 javascript node.js typescript dependency-injection nestjs

我创建了一个核心模块,其中包含一个服务。

import { Module } from '@nestjs/common';
import { CacheService } from './cache.service';


@Module({
  providers:[{ provide: CacheService, useValue: new CacheService()}],
  exports:[{ provide: CacheService, useValue: new CacheService()}]
})
export class CoreModule {}

我已将 CoreModule 导入到 AppModule 中。

@Module({
    imports: [
        TypeOrmModule.forRoot(typeOrmConfig),
        CoreModule,
        offerModule
    ],
    controllers: [AppController],
    providers: [AppService]
})
export class AppModule {}

AppModule 中导入了一个报价模块。当我尝试在 checkmodule 中注入(inject) CacheService 时,它​​抛出以下错误。

2019-02-05 13:40:25 [error]:    Error: Nest can't resolve dependencies of the OfferService (OfferRepository, ?, Connection, AppLogger). Please make sure that the argument at index [1] is available in the OfferModule context.
    at Injector.lookupComponentInExports (C:\Project Workspace\ts-sharing\node_modules\@nestjs\core\injector\injector.js:144:19)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
    at Function.Module.runMain (module.js:696:11)
    at Object.<anonymous> (C:\Project Workspace\ts-sharing\node_modules\ts-node\src\bin.ts:157:12)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
 1: v8::internal::compiler::Type::Negative31
 2: v8::internal::wasm::SignatureMap::Find
 3: v8::internal::Builtins::CallableFor
 4: v8::internal::Builtins::CallableFor
 5: v8::internal::Builtins::CallableFor
 6: 0000023CE08843C1

有人可以帮忙吗?

最佳答案

您还必须在 OfferModule 中导入 CoreModule,以便其提供者可以使用它。

<小时/>

如果您希望您的 CoreModule 在全局范围内可用,您可以将其设为 global module使用 @Global 装饰器。有了它,模块只需导入一次(例如在 AppModule 中),然后就可以在所有模块中使用。

@Global()
@Module({
  providers:[CacheService],
  exports:[CacheService],
})
export class CoreModule {}

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

相关文章:

javascript - 有没有一种方法可以将变量添加到作用域,就像将变量添加到窗口对象一样?

javascript - 如何检查文档/文档快照中是否存在某个字段?

node.js - 来自 Sequelize 和 Node.js 的问题 console.log() 对象

javascript - 如何将某物推送到返回数组的函数?(是否可以推送到返回数组的函数)

javascript - Selenium 调用 Javascript 函数

javascript - 顺序函数调用的执行上下文 - 这会更改为窗口

node.js - 平均堆栈删除回调

typescript - 函数返回类型不可分配给泛型解析的内容

reactjs - 在 React 中通过 TypeScript 解构赋值

php - jQuery jQGrid 在标题层单击时展开/折叠网格