【发布时间】:2019-09-12 03:37:02
【问题描述】:
我有一个架构(定义了适当的数据库表和实体类),例如
type User {
id: Int!
phoneNumber: String!
}
type Event {
id: Int!
host: User
}
我正在尝试使用 Apollo 来编写类似
的查询Query{
event(id:1){
host{
firstName
}
}
}
但我不知道如何让 Apollo 库将主机字段中的用户类型解析为存储在事件对象上的 hostId。
我修改了事件以返回 hostId 字段,它工作得很好,但 Graphql 不会将 id 解析为适当的用户类型。我错过了什么?
编辑:缺少解析器代码
event: async (parent: any, args: { id: number }) => {
const eventRepository = getConnection().getRepository(Event);
const event = await eventRepository.findOne(args.id);
return event;
},
我设法通过使用findOne(args.id, { relations: ['host']}) 获得了一个工作版本,但我不喜欢这样,因为它似乎适合委派给 graphql 来处理。
【问题讨论】:
-
请附上相关的解析器代码。
标签: javascript express graphql apollo-server typeorm