我有一个像这样定义的服务:
app.use(`/teams/:${id}/members`, teamsMembersService);
现在我想从其他服务中调用此服务。根据文档,我可以使用app对象访问不同的服务。 像这样:
let result = await app.service('teams').find();
效果很好。不幸的是,这不是:
let result = await app.service('teams/1/members').find();
因为服务未定义。
如何使用路由参数调用此服务?
答案 0 :(得分:3)
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 } })