[英]How can I define resolver for object type in graphql-js?
我的应用程序中有许多 graphql 类型。
我使用 graphql-js 来构建它们。
// example
const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
name: 'TruckDriver',
fields: () => ({
id: { type: GraphQLString },
}),
})
然后我在不同的查询和突变中导入这些类型来定义返回值的类型。
但是我的解析器不返回对象,它们返回字段信息位于嵌套属性“信息”中的类的实例。 例如上面的解析器将返回
{
info: {
id: '123'
}
...
}
我想在我的类型中添加解析器,但我发现类型没有解析器。
如何轻松实现 object 类型的字段数据解析逻辑?
您可以为每个单独的字段指定一个解析器,如下所示:
const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
name: 'TruckDriver',
fields: () => ({
id: {
type: GraphQLString
resolve: truck => truck.info.id
},
}),
})
或修改 Query 和 Mutation 字段的解析器以返回适当形状的对象。 就像是
async function resolve () {
const trucks = await getTrucks()
return trucks.map(truck => truck.info)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.