javascript - 如何使用 FeathersJs 在钩子(Hook)中设置和访问内部服务

标签 javascript knex.js feathersjs feathers-hook feathers-service

我想在添加到公共(public) REST 端点的 Hook 中使用内部定义的服务,这可能吗?

通过内部定义,我指的是使用feathers-common-hooks中的disallow钩子(Hook)。

app.service('/api/internal/helper').hooks( { before: { all: disallow('rest') } } )

该钩子(Hook)会查看 context 对象中的 provider 是否与我禁用的内容匹配。即,如果使用 disallow('rest'),则会禁止从 REST 访问该服务。

问题是我想在附加到公共(public)服务的 Hook 中使用这个内部 helper 服务,但还没有找到这样做的方法。当内部服务被调用时,provider 仍然休息并且调用被阻止。

最佳答案

这些钩子(Hook)的作用是寻找 params.provider正在设置。任何未设置 params.provider 的内容都被视为内部调用。如果您想将其他参数传递给内部调用,您可以例如_.omit provider 属性:

app.service('/api/internal/helper').find(omit(context.params, 'provider'))

关于javascript - 如何使用 FeathersJs 在钩子(Hook)中设置和访问内部服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553324/

相关文章:

javascript - express get url 错误

javascript - 在 Array.map 同步中使用异步函数

mysql - Feathers.js/Sequelize -> 服务与两个模型之间的关系

javascript - 尾递归和斐波那契

javascript - 获取选中复选框的 href 值?

mysql - Knex.js - 如何使用表达式更新字段

javascript - 使用 knex.transactionProvider() 时出现 KnexTimeoutError

mysql - 如何获取 knex/mysql 中所有更新记录的列表

mysql - 如何在创建钩子(Hook)调用 mysql 函数之前进行 FEATHERS-sequelize

javascript - FeathersJS - 在哪里链接钩子(Hook)?