我使用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
的嵌套参数?
答案 0 :(得分:1)
您应该为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
字段具有Trip
类型,因此当您要使用passengers
字段时,应将其视为{{1}下的字段}} type,而不是Trip
类型的嵌套字段。