首页 > 解决方案 > 是否有 FeathersJs 语法用于在单个命令中创建带有钩子的端点?

问题描述

我找到了如何向现有服务添加挂钩:

app.use("/hello", { get: async () => "Hello World"});
app.service('/hello').hooks({
  before: { create: someHookFn }
});

但我很确定这种语法可以改进,我只是找不到一个例子。尝试搜索源代码也无济于事,就其类型定义而言,它非常麻烦。

是否有 FeathersJs 语法用于在单个命令中创建带有钩子的端点?

像这样的东西:

// non-functional code
app.use("/hello", {
  service: { get: async () => "Hello World"},
  hooks: {
    before: { create: someHookFn }
  }
});

标签: feathersjsfeathers-hookfeathers-service

解决方案


您可以像这样创建一个函数:

function createService(service, hooks) {
  return feathers().use('', service).service('').hooks(hooks);
}

然后像这样使用它:

app.use("/hello", createService({
  { get: async () => "Hello World"},
  { before: { create: someHookFn } }
}));

为我这样做的原因是我想要一个未连接到端点的服务以在 graphql 中使用。另外,我不喜欢通过字符串 id 连接事物。


推荐阅读