【问题标题】:FeathersJS: Call service with express route parametersFeathersJS:使用快速路由参数调用服务
【发布时间】:2017-04-30 11:06:33
【问题描述】:

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

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

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

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

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

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

因为服务未定义。

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

【问题讨论】:

    标签: feathersjs


    【解决方案1】:

    await app.service('teams/1/members').find(); 将在您使用 REST client 时有效,但在其他情况下无效。在服务器上你可以在params 中传递id:

    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 } })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多