在Loopback 4中使用服务

时间:2019-08-27 13:49:38

标签: typescript loopback4

摘要

如何使用Loopback 4服务生成器并创建本地服务类来处理*.repository*.controller之外的数据

详细信息

我正在开发一个系统,该系统需要外部API来获取数据,复杂的哈希/加密等,这些系统不属于控制器范围或存储库范围(出于简洁代码的目的)。环回4具有CLI命令lb4 service来生成service,并且该文档记录不充分。像在存储库中一样,如何在/service文件夹中创建一个类并导入(或注入或绑定等)并使用它的方法?

例如:

{p> 1之类的服务中的

调用方法 this.PasswordService.encrypt('some text')目录中定义的this.TwitterApiService.getTweets()

1 个答案:

答案 0 :(得分:1)

好的,我自己弄清楚了。我将按照我遵循的步骤对此进行解释。

  1. 创建文件夹/src/service,并在其中创建myService.service.tsindex.ts,方法与在controllerrepository等中相同(或使用{{ 1}},然后选择lb4 service)。注意:如果要实现接口,则可以。

  2. 使用local service class方法创建绑定密钥。

BindingKey.create()

export const MY_SERVICE = BindingKey.create<ServiceClass>('service.MyService'); 可以是类或接口。

  1. 转到ServiceClass并将密钥(此处为 service.MyService )绑定到服务类。
application.ts
  1. 将服务注入所需的类。我在这里注入控制器
export class NoboBackend extends BootMixin(
  ServiceMixin(RepositoryMixin(RestApplication)),
) {
  constructor(options: ApplicationConfig = {}) {
    super(options);
    ...

    //add below line
    this.bind('service.MyService').toClass(ServiceClass);

    //and code goes on...
    ...
}

现在您可以访问export class PingdController { constructor( @inject(MY_SERVICE ) private myService: ServiceClass, ) {} ... ... } ... !!!