摘要
如何使用Loopback 4
服务生成器并创建本地服务类来处理*.repository
或*.controller
之外的数据
详细信息
我正在开发一个系统,该系统需要外部API来获取数据,复杂的哈希/加密等,这些系统不属于控制器范围或存储库范围(出于简洁代码的目的)。环回4具有CLI命令lb4 service
来生成service
,并且该文档记录不充分。像在存储库中一样,如何在/service
文件夹中创建一个类并导入(或注入或绑定等)并使用它的方法?
例如:
{p> 1之类的服务中的调用方法
或
this.PasswordService.encrypt('some text')
目录中定义的this.TwitterApiService.getTweets()
答案 0 :(得分:1)
好的,我自己弄清楚了。我将按照我遵循的步骤对此进行解释。
创建文件夹/src/service
,并在其中创建myService.service.ts
和index.ts
,方法与在controller
,repository
等中相同(或使用{{ 1}},然后选择lb4 service
)。注意:如果要实现接口,则可以。
使用local service class
方法创建绑定密钥。
BindingKey.create()
export const MY_SERVICE = BindingKey.create<ServiceClass>('service.MyService');
可以是类或接口。
ServiceClass
并将密钥(此处为 service.MyService )绑定到服务类。application.ts
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,
) {}
...
...
}
... !!!