【问题标题】:Feathers JS nested Routing or creating alternate servicesFeathers JS 嵌套路由或创建替代服务
【发布时间】:2017-04-05 05:46:45
【问题描述】:

我正在进行的项目使用了羽毛 JS 框架服务器端。许多服务都有钩子(或中间件),可以在发送回客户端之前进行其他调用并附加数据。如果我有一个需要查询数据库的新功能,但我认为我不想使用已经构建的“查找”方法来查询数据库,因为该“查找”方法有很多其他不需要的钩子和对其他数据库的调用以获取我对我的功能的新查询不需要的数据。

到目前为止我的两个解决方案:

  1. 我可以使用标准的“查找”查询,只需在所有挂钩中编写 if 语句来检查可以在客户端传递的特定字符串参数,因此这些挂钩在此特定调用时被停用,但这似乎很乏味,尤其是如果我发现需要其他几个已经构建好的不同服务。

  2. 我在我的主要服务下面初始化第二个服务,所以如果我的主要服务是:

    app.use('/comments', new JHService(options));
    

    我在下面写:

    app.use('/comments/allParticipants', new JHService(options));
    

    然后为该服务附加一套全新的钩子。基本上它是一个全新的服务,与起源的唯一关系是它的名字的第一部分是“cmets”因为我是新来的羽毛我不确定这是一个高性能或最佳的解决方案。

还有比这些选项更好的解决方案吗?还是选项 1 或选项 2 是解决我当前问题的最正确方法?

【问题讨论】:

    标签: node.js middleware feathersjs


    【解决方案1】:

    您始终可以将人口挂钩包装到conditional hook

    const hooks = require('feathers-hooks-common');
    
    app.service('myservice').after({
      create: hooks.iff(hook => hook.params.populate !== false, populateEntries)
    });
    

    现在人口只会在params.populate 不是false 时运行。

    【讨论】:

      猜你喜欢
      • 2013-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2017-04-21
      • 1970-01-01
      • 2021-03-02
      • 1970-01-01
      相关资源
      最近更新 更多