NestJS跨模块Service引用
需要在公共模块(app)中使用某些独特的模块,例如调用任务模块的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了