我的应用程序中有很多graphql类型。
我使用graphql-js构造它们。
// example
const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
name: 'TruckDriver',
fields: () => ({
id: { type: GraphQLString },
}),
})
然后,我在不同的查询和变量中导入此类类型,以定义返回值的类型。
但是我的解析器不返回对象,而是返回类信息的实例,其中字段信息位于嵌套属性“ info”中。例如,上面的解析器将返回
{
info: {
id: '123'
}
...
}
我想在类型中添加解析器,但是发现类型没有解析器。
如何为我的对象类型轻松实现字段数据解析的逻辑?
答案 0 :(得分:0)
您可以为每个单独的字段指定解析器,如下所示:
const TruckDriver: GraphQLObjectType = new GraphQLObjectType({
name: 'TruckDriver',
fields: () => ({
id: {
type: GraphQLString
resolve: truck => truck.info.id
},
}),
})
或修改“查询”和“突变”字段的解析器以返回适当形状的对象。像
async function resolve () {
const trucks = await getTrucks()
return trucks.map(truck => truck.info)
}