FeathersJS:使用快速路由参数调用服务

时间:2017-04-28 16:35:51

标签: feathersjs

我有一个像这样定义的服务:

app.use(`/teams/:${id}/members`, teamsMembersService);

现在我想从其他服务中调用此服务。根据文档,我可以使用app对象访问不同的服务。 像这样:

let result = await app.service('teams').find();

效果很好。不幸的是,这不是:

let result = await app.service('teams/1/members').find();

因为服务未定义。

如何使用路由参数调用此服务?

1 个答案:

答案 0 :(得分:3)

如果您使用的是REST client

await app.service('teams/1/members').find();将会有效。在服务器上,您可以在id中传递params

app.service(`/teams/:${id}/members`).find({ id })

通过Socket.io(通常是一个好主意)使用是将参数添加到params.query

app.service(`/teams/:${team_id}/members`).hooks({
  before: {
    find(hook) {
      if(hook.params.team_id) {
        hook.params.query.team_id = hook.params.team_id;
      }
    }
  }
})

现在你可以做到

app.service(`/teams/:${id}/members`).find({ query: { team_id: id } })