FeathersJS中的活动/反应聚合

FeathersJS中的活动/反应聚合,feathersjs,Feathersjs,我正在尝试用FeathersJS和FeathersVuex实现一个实时应用程序 一个简单的例子-一个todo应用程序,用户可以在其中添加目标、为目标添加任务,以及为每个任务添加工作量(1-5)。我想找出实现目标所需的全部努力。只要任务的工作量发生变化(CRUD),目标的工作量就会得到更新 比如说—— Goal: G1 (11/15) Tasks: T1 (4/5), T2 (2/3), T3 (5/5) 如何计算并在FeathersJS+FeathersVuex中保持同步 到目前为止我都试过了

我正在尝试用FeathersJS和FeathersVuex实现一个实时应用程序

一个简单的例子-一个todo应用程序,用户可以在其中添加目标、为目标添加任务,以及为每个任务添加工作量(1-5)。我想找出实现目标所需的全部努力。只要任务的工作量发生变化(CRUD),目标的工作量就会得到更新

比如说——

Goal: G1 (11/15)
Tasks: T1 (4/5), T2 (2/3), T3 (5/5)
如何计算并在FeathersJS+FeathersVuex中保持同步

到目前为止我都试过了-

  • FastJoin将此数据填充到每个目标记录中,但它不是被动的-不确定如何“倾听”对“任务”的更改
  • 钩子和在数据库中存储统计数据——它工作了一段时间,但开始失控(当更多的服务参与计算时),我最终得到了太多的耦合
  • 在Vuex中加载所有内容并在前端进行计算-对于原型设计来说效果很好,但对于记录太多而无法预加载所有内容的实际情况来说却不起作用
  • 一个定制服务——“GoalStats”,它通过聚合来自多个服务的内容来计算相关的统计数据[阅读,这是推荐的方法]
  • 我似乎不明白的是——当跨服务计算/聚合数据时,如何保持事情的反应性。(例如,在上述示例中添加新任务会更改目标优先级)

    对于FeathersJS和FeathersVuex来说还是比较新的,所以我不太确定这里缺少了什么


    更新
    下面是我现在已经确定的-使用来自所有依赖服务的钩子在定制服务上触发一个空补丁请求(如果需要)。在FeathersVuex中,我添加了该服务并对其进行了更新

    因此,在上面示例的上下文中,我使用任务前和任务后钩子服务来检查工作值是否被更改,或者任务是否被添加/删除。如果是这样,我将发送一个补丁请求,该请求在我的定制服务中调用GET back the second-the-second-the-second,并重新计算遵循现有事件流的统计数据

    不确定是否有更好的方法来实现这一点和/或是否有管理这些跨服务“触发器”的最佳实践