如何从另一个控制器调用 Loopback4 控制器的方法

Din*_*nis 0 javascript loopback loopbackjs server

我有一个带有我不想通过 HTTP 公开的功能的环回 4 控制器。我希望能够从另一个控制器调用该函数。

我怎样才能做到这一点?有没有办法在另一个控制器中注入一个控制器?(我可以在控制器中注入存储库,但不能在其他控制器中注入控制器)。

Man*_*dia 5

您必须首先导入另一个控制器的存储库,例如

import { MemberRepository, EmailTemplateRepository } from '../repositories';
Run Code Online (Sandbox Code Playgroud)

然后你必须像这样在构造函数中注入它:-

@repository(EmailTemplateRepository) public emailTemplateRepository: EmailTemplateRepository,
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样使用控制器的任何功能:-

const template = await this.emailTemplateRepository.findOne({
  where: {
    slug: 'user-password-reset',
    status: 1
  }
}); 
Run Code Online (Sandbox Code Playgroud)

  • 这是执行此操作的正确方法。控制器应该是相互独立的。如果您不想公开 API,那么您根本不应该拥有控制器。这应该是公认的答案。 (2认同)