在维持serviceB模块上下文的同时,从serviceB调用serviceA

时间:2019-01-04 16:27:07

标签: javascript web-frameworks nestjs

考虑到nestjs框架,我有几个作为API公开的服务。每个服务都有其自己的模块和特定的httpmodule配置。

ServiceA需要致电ServiceB。在这种情况下,我有两个选择: 1-执行http请求。 2-在服务A中使用服务B。

对于选项1,有问题。 ServiceA具有其自己的HTTPModule配置,因此要执行http请求,我需要覆盖HttpModule配置。此外,这还会给我发送HTTP请求的服务带来不必要的负担。

选项2似乎有一个问题,其中ServiceA HttpModule配置用于ServiceB。

问题: 是否可以使用ServiceA中的ServiceB来维护ServiceB的模块上下文完整性?

为清楚起见,这里是结构:

-src
  --serviceA
    -- serviceA.module.ts
    -- serviceA.service.ts
  --serviceB
    -- serviceB.module.ts
    -- serviceB.service.ts

谢谢

1 个答案:

答案 0 :(得分:0)

我想我明白了。

在serviceA.module中:

@Module({
    imports: [
        ServiceBModule
    ],
})
export class ServiceA {}

在ServiceB模块中,我必须像这样添加导出:

@Module({
    exports: [ServiceBService]
})
export class ServiceBModule {}

在serviceA.service

import { ServiceBService } from 'src/serviceB/serviceB.service';

constructor(private readonly serviceB: ServiceBService) { }

通常在代码中使用serviceB。