NestJS跨模块Service引用
场景
需要在公共模块(app)中使用某些独特的模块,例如调用任务模块的service中的方法主动生成公钥。
方法一
如果在app.controller.ts
中需要使用到taskService
,则需要在app.module.ts
中的providers
中添加TaskService
js
@Module({
imports: [TaskModule],
controllers: [AppController],
providers: [AppService, TaskService],
})
export class AppModule {}
imports仅仅是导入该目标模块,并不能达到跨模块调用service的目的
方法二
在TaskModule
中导出TaskService
:
js
@Module({
imports: [
TypeOrmModule.forFeature([HttpTask]),
],
providers: [TaskService],
controllers: [TaskController],
exports: [TaskService],
})
export class TaskModule {}
如此就不需要在AppModule
中添加TaskService
了