【问题标题】:Connecting non-db, non-rest loopback connector to Loopback 4将 non-db、non-rest loopback 连接器连接到 Loopback 4
【发布时间】:2019-07-01 18:46:51
【问题描述】:

希望有人可以帮助我了解一些 Loopback 4 基础知识...

我想连接一个不连接到数据库或 REST 端点的环回连接器。这个特定的库使用 sendgrid 库发送电子邮件。它基本上只是一个由连接器包装的发送函数。

我不确定如何将此函数公开给我的控制器以便我可以发送电子邮件,因为数据源需要 1. CRUD 命令 2. REST 端点,这不适用于此连接器。

我对 Loopback 4 完全陌生,所以也许我只是缺少一些我找不到的基本知识。谢谢

【问题讨论】:

    标签: loopbackjs


    【解决方案1】:

    这个特定的库使用 sendgrid 库发送电子邮件。它基本上只是一个由连接器包装的发送函数。 我不确定如何将此函数公开给我的控制器

    请按照Calling other APIs and web services 中的说明进行操作。本质上:

    1. 使用 lb4 datasource 为您的 sendgrid 连接器创建一个数据源。编辑创建的数据源 JSON 文件并提供必要的配置,例如客户端凭据。

    2. 使用lb4 service 命令创建新服务。

    3. 修改您的控制器 - 通过构造函数参数注入服务。

      constructor(
        @inject('services.EmailService')
        protected emailService: CalculatorService,
      ) {}
      
    4. 在控制器方法中,通过注入的服务实例调用连接器提供的方法。

    或者,您不必使用连接器,可以直接从控制器方法调用 sendgrid 库。

    【讨论】:

    • 谢谢@miroslav。我试过这个,但是当我运行 lb4 service 命令时,它没有列出我的 sendgrid 数据源。服务生成器似乎需要一个 REST 数据源。我通过创建它确实识别的 REST 数据源来确认这一点。如何将 sendgrid 连接器连接到它? Here 是我正在使用的连接器。
    • 这看起来像是我们这边的疏忽。本质上,我们使用关于已知连接器的元数据(请参阅github.com/strongloop/loopback-workspace/blob/master/…)来决定支持每个数据源的连接器是否将“模型”声明为基类,从而类似于“服务”。显然,这不适用于我们不知道的连接器。你能打开一个新的 GitHub 问题吗?最好是“功能请求” - 请参阅github.com/strongloop/loopback-next/issues/new/choose
    • 我已经创建了功能请求here 感谢您对此的帮助。所以听起来目前唯一可行的选择就是将库直接导入我的控制器中,正如你提到的那样,对吗?
    • 并非如此。我相信您可以将数据源名称作为命令行参数提供给lb4 service 命令,然后它将跳过基本模型检查并使用提供的数据源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 2020-05-03
    • 1970-01-01
    • 2012-09-30
    相关资源
    最近更新 更多