【问题标题】:Calling serviceA from serviceB while maintaining serviceB module context在维护服务模块上下文的同时从服务调用 serviceS
【发布时间】:2019-05-31 05:57:45
【问题描述】:

考虑到 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

谢谢

【问题讨论】:

标签: javascript web-frameworks nestjs


【解决方案1】:

我想我明白了。

在 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2020-07-04
    • 2012-10-28
    • 2021-08-30
    • 1970-01-01
    • 2023-03-15
    • 2019-06-19
    • 1970-01-01
    相关资源
    最近更新 更多