我创建了一个核心模块,其中包含一个服务。
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/