我使用 graphql-tools 图书馆和 makeExecutableSchema 函数通过向其传递架构和解析器来创建我的架构
graphql-tools
makeExecutableSchema
以下是我的模式:
type Trip { code: String! driver: User! vehicle: Vehicle! destination: Location! passengers(page: Int, count: Int): [User!]! } type Query { trip(id: String!): Trip }
这是我的解析器:
// some imports... export default { Query: { async trip(_, { id }, ctx, info) { const trip = await Trip.findById(id); // const page = ???, count = ??? // work on fetch data... return result; }, };
我怎样才能 page 和 count 定义为的嵌套参数 passengers ?
page
count
passengers
您应该为该类型定义一个解析器 Trip ,例如:
Trip
export default { Query: { async trip(_, { id }, ctx, info) { const trip = await Trip.findById(id); // const page = ???, count = ??? // work on fetch data... return result; }, Trip: { async passengers(trip, { page, count }, ctx, info) { ... }, } };
在GraphQL中,它不是“类型的嵌套字段”的概念,而是“字段类型”的组合。这个 trip 类型字段 Query 有 旅行 键入,以便在需要使用 passengers 字段,应将其视为 旅行 类型,而不是 查询 类型
trip
Query
旅行
查询