我剛剛發現了feathersjs,並且非常喜歡它背後的想法,儘管我仍然不確定基於服務的理念如何適用於比簡單的CRUD UI更復雜的應用程序。featherjs處理非數據相關操作和子對象的方式是什麼?
爲了更好地理解它,我舉了一個例子:考慮一個可以創建和分享調查的應用程序。您可以輕鬆管理創建調查服務來創建,更新和獲取調查的屬性(即問題和答案)。但是,如何處理以下幾個方面:
1)有動作,即根本不影響數據的服務調用。一種行動可能是向尚未參與調查的所有受邀用戶發送提醒電子郵件。如果不使用羽毛,我會爲此創建一個專門的快速終點,但這些動作如何符合羽毛哲學?是否應該爲每個操作創建一個服務(僅實現一個HTTP動詞)?這會很快引起混淆。使用掛鉤檢測虛擬域上的更新並觸發該操作?很難記錄和混淆。
2)想象一下,用戶可以給調查添加評論。這些評論將成爲調查模型的一部分(我會爲此使用MongoDB,因此請考慮每個調查對象有一個註釋數組)。客戶網絡將調用GET /survey/123
方法的調查服務這將返回其他屬性(問題,答案,..)中的評論。但是如何添加評論?我應該爲它使用一項專門的服務嗎,或者這將如何適應調查服務?這樣的請求將如何?
新的社區提供的掛鉤可能有助於通過數據庫調用發送該電子郵件異步。 https://github.com/feathersjs/feathers-community-hooks/blob/master/src/run-parallel.js – JohnSz
感謝您的+50! – JohnSz