从 Feathers 挂钩获取服务句柄或挂载点

Getting service handle or mount point from Feathers hook

我想实现一个后挂钩,用 {serviceName}:{id} 形式的全局唯一 ID 替换记录 ID(其中 id 是典型的 MySQL 数字 ID)。

但是我找不到从挂钩访问 serviceName 或服务挂载点的方法。可能吗?

如果不是,我将坚持在挂钩实例化期间将服务名称作为参数传递,但这是手动操作且容易出错。我希望有更好的方法来做到这一点:)

您可以遍历所有服务,然后 return 匹配挂钩上下文的路径:

app.service('myservice').before({
  create(hook) {
    const service = this;
    const allServices = hook.app.services;

    const path = Object.keys(allServices).find(
      currentPath => allServices[currentPath] === service
    );
  }
});