Javascript 尝试使用nestjs将服务注入另一个服务时出现问题
我面临一个问题。 我有一个示例存储库: 我想将Javascript 尝试使用nestjs将服务注入另一个服务时出现问题,javascript,node.js,nestjs,Javascript,Node.js,Nestjs,我面临一个问题。 我有一个示例存储库: 我想将RaceService注入HeroService,因为我想使用一些方法,比如getById 我遵循此处描述的文档: 当我执行下一步操作时,问题会出现: 在RaceModule中,我添加了RaceService作为导出: @Module({ imports: [TypeOrmModule.forFeature([RaceEntity])], controllers: [RaceController], providers: [RaceSer
RaceService
注入HeroService
,因为我想使用一些方法,比如getById
我遵循此处描述的文档:
当我执行下一步操作时,问题会出现:
在RaceModule
中,我添加了RaceService
作为导出:
@Module({
imports: [TypeOrmModule.forFeature([RaceEntity])],
controllers: [RaceController],
providers: [RaceService],
exports: [RaceService],
})
在HeroModule
I导入RaceModule
:
@Module({
imports: [RaceModule, TypeOrmModule.forFeature([HeroEntity])],
controllers: [HeroController],
providers: [HeroService],
})
在HeroService
中,我为RaceService
添加了注入:
constructor(
@InjectRepository(HeroEntity)
private heroRepository: Repository<HeroEntity>,
private readonly raceService: RaceService,
) {
}
我尝试了不同的方法导入服务,包括创建新的CommonModule,还将forwardRef放入raceService定义中,但出现了另一个错误:
Nest can't resolve dependencies of the HeroService (HeroEntityRepository, ?). Please make sure that the argument at index [1] is available in the HeroModule context.
谢谢你的帮助 在一些帮助下,我意识到我的问题出现了,因为我在modules文件夹中创建了一个文件
index.ts
(想法是立即导出模块名称),如下所示:
export { RaceModule } from './race.module';
... others
import { RaceModule } from 'modules';
因此,当我尝试在HeroModule
导入RaceModule
时,如下所示:
export { RaceModule } from './race.module';
... others
import { RaceModule } from 'modules';
我的问题出现了
我不知道为什么,但直接从index.ts
文件引用模块导入,而不是:
import { RaceModule } from 'modules/race.module';
是我的代码的问题
因此,根据一些建议,我创建了一些文件夹并移动了一些文件,我的项目开始正常工作
感谢您的帮助,希望有人能对此有所帮助。您需要在英雄模块中导入种族模块的模块我对您的GitHub repo提出了一个拉取请求,希望您能发现它有帮助。@Juan欢迎使用!当你的问题似乎得到解决时,考虑把它作为你自己问题的答案。其他人可能会从您的解决方案中获益,也可以看到您的问题已经解决了。:-)