2017-10-16 49 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透明連接),以便所有連接的客戶端都能自動更新。那麼應該不需要手動觸發事件(如果必須通過任何更改數據的鉤子來運行原始數據)。

相關問題