我正在使用apollo-server和apollo-graphql-tools,我有以下模式
type TotalVehicleResponse {
totalCars: Int
totalTrucks: Int
}
type RootQuery {
getTotalVehicals(color: String): TotalVehicleResponse
}
schema {
query: RootQuery
}
解析器函数如下所示
{
RootQuery: {
getTotalVehicals: async (root, args, context) => {
// args = {color: 'something'}
return {};
},
TotalVehicleResponse: {
totalCars: async (root, args, conext) => {
// args is empty({}) here
.........
.........
},
totalTrucks: async (root, args, conext) => {
// args is empty({}) here
.........
.........
}
}
}
}
我的问题是,我如何访问
它在根解析器中可用(
)中的任何一个子解析器?
发布于 2018-01-22 14:11:35
请严格参考该字段的查询中提供的参数。如果要使子冲突解决程序可以使用这些值,只需从父冲突解决程序返回这些值即可。
{
RootQuery: {
getTotalVehicles: async (root, args, context) => {
return { color: args.color };
},
TotalVehicleResponse: {
totalCars: async (root, args, context) => {
// root contains color here
},
totalTrucks: async (root, args, context) => {
// root contains color here
}
}
}
}
发布于 2018-01-22 14:38:54
如果您知道您正在使用
变量
除了接受的答案之外,还有另一种方法使用解析器函数的第四个参数:
..。
这个
参数包含一个字段
在其他字段中。此字段不严格包含父级的
,但是如果您的操作是使用传递给父解析器的变量执行的,那么您将可以通过所有相关解析器函数的info.variableValues访问这些变量。
因此,如果像这样调用您的操作,例如:
query GetTotalVehicalsOperation($color: String) {
getTotalVehicals(color: $color) {
totalCars
totalTrucks
}
}
..。使用变量:{color:'something'}
您将可以访问其他解析器中的变量:
{
RootQuery: {
getTotalVehicles: async (root, args, context, info) => {
//info.variableValues contains {color: 'something'}
return {};
},
TotalVehicleResponse: {
totalCars: async (root, args, context, info) => {
//same here: info.variableValues contains {color: 'something'}
},
totalTrucks: async (root, args, context, info) => {
//and also here: info.variableValues contains {color: 'something'}
}
}
}
}
发布于 2020-07-17 10:42:54
要了解更多信息,请执行以下操作
变量
在GraphQL中使用
请参考这些链接(您可以在5分钟内浏览这些链接)
https://graphql.org/learn/queries/#operation-name
https://graphql.org/learn/queries/#variables
https://graphql.org/learn/queries/#fragments
https://graphql.org/learn/queries/#using-variables-inside-fragments
您将更好地掌握操作名称、变量、片段以及片段中变量的使用。
看看这个链接:
https://www.prisma.io/blog/graphql-server-basics-demystifying-the-info-argument-in-graphql-resolvers-6f26249f613a
它将帮助您更多地了解
信息
解析函数的参数。
https://stackoverflow.com/questions/48382897
复制相似问题