在graphql-js中定义对象类型的解析器,可以通过以下步骤实现:
GraphQLObjectType
来定义对象类型。该类型包含了对象的字段和解析器函数。const { GraphQLObjectType, GraphQLString, GraphQLInt } = require('graphql');
const UserType = new GraphQLObjectType({
name: 'User',
fields: {
id: { type: GraphQLInt },
name: { type: GraphQLString },
email: { type: GraphQLString },
},
});
const { getUserById } = require('./dataSources');
const resolvers = {
User: {
name: (parent) => parent.name,
email: (parent) => parent.email,
id: (parent) => parent.id,
},
};
parent
获取父级对象的值。例如,在上述示例中,parent
参数表示包含name
、email
和id
字段的父级对象。const { GraphQLSchema, GraphQLObjectType } = require('graphql');
const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Query',
fields: {
user: {
type: UserType,
resolve: () => getUserById(1), // 从数据源中获取用户数据
},
},
}),
});
在上述示例中,getUserById
函数用于从数据源中获取用户数据,并将其作为解析器函数的返回值。
这样,我们就成功地在graphql-js中定义了对象类型的解析器。在实际应用中,可以根据具体需求定义更多的对象类型和解析器函数,并通过GraphQL Schema将它们组合起来。
领取专属 10元无门槛券
手把手带您无忧上云