2017-10-16 48 views
0

通过羽毛文档,我明白这是基于服务和钩子,并且服务具有的事件也有助于提供实时同步服务器和客户端之间。Feathers.js和后台作业,如何触发服务事件(或实时更新客户端)

只要事情很简单,就像我在文档中所了解的那样,基本上有一个服务生成,然后使用服务方法添加/保存/更新将触发事件。

我的情况有点不同:

  • 的API端点不从一个表,但复杂的查询基于多个表
  • 我需要有背景的工人在数据库上执行操作返回的信息,可能使用Kue(如果内部没有更好的方法),当工作人员完成工作时,我需要有一种方法来触发API服务,以便使用新数据更新客户端。

我该如何在羽毛上做到这一点?

回答

0

这两种情况都可以用羽毛来处理这样的:

羽毛服务做有被束缚的表。就像在任何其他框架(控制器)中一样,您可以实现custom service。这并非罕见创建聚合不同的服务电话或使用service.Model访问ORM您直接使用仪表板服务:

class MyService { 
    find(params) { 
    const userModel = this.app.service('users').Model; 
    const invoiceModel = this.app.service('invoices').Model; 

    return userModel.doSomething() 
     .then(data => invoiceModel.doSomethingElse()); 
    } 

    setup(app, path) { 
    this.app = app; 
    } 
} 

背景的工人也应使用羽毛API(在节点这可以通过完成直接使用应用程序const app = require('./src/app')或通过Feathers as the client透明连接),以便所有连接的客户端都能自动更新。那么应该不需要手动触发事件(如果必须通过任何更改数据的钩子来运行原始数据)。

相关问题