2017-07-26 88 views
0

进出口新的GraphQl,刚刚创建我的第一个模式出现此错误错误:RootQueryType.resolve场配置必须是一个对象

Error: RootQueryType.resolve field config must be an object 
    at invariant (/Applications/Node/users/node_modules/graphql/jsutils/invariant.js:19:11) 
    at /Applications/Node/users/node_modules/graphql/type/definition.js:360:56 
    at Array.forEach (native) 
    at defineFieldMap (/Applications/Node/users/node_modules/graphql/type/definition.js:357:14) 
    at GraphQLObjectType.getFields (/Applications/Node/users/node_modules/graphql/type/definition.js:311:44) 
    at typeMapReducer (/Applications/Node/users/node_modules/graphql/type/schema.js:209:25) 
    at Array.reduce (native) 
    at new GraphQLSchema (/Applications/Node/users/node_modules/graphql/type/schema.js:98:34) 
    at Object.<anonymous> (/Applications/Node/users/schema/schema.js:39:18) 
    at Module._compile (module.js:569:30) 

这是我的架构

const graphql = require('graphql'); 
const _ = require('lodash'); 
const{ 
    GraphQLObjectType, 
    GraphQLInt, 
    GraphQLString, 
    GraphQLSchema 
} = graphql; 

const users = [ 
    {id:'23', firstName:'Bill', age:20}, 
    {id:'47', firstName:'Samantha', age:21} 
]; 

const UserType = new GraphQLObjectType({ 
    name: 'User', 
    fields:{ 
     id: {type: GraphQLString}, 
     firstName: {type: GraphQLString}, 
     age:{type: GraphQLInt} 
    } 
}); 

const RootQuery = new GraphQLObjectType({ 
    name: 'RootQueryType', 
    fields:{ 
     user: { 
      type: UserType, 
      args:{ 
       id: {type: GraphQLString} 
      } 
     }, 
     resolve(parentValue, args){ 
      return _.find(users, {id: args.id}); 
     } 
    } 
}); 

module.exports = new GraphQLSchema({ 
    query: RootQuery 
}); 

回答

3

你GraphQL模式是无效,因为您在RootQuery对象中放置了解析函数。

试试这个:

const RootQuery = new GraphQLObjectType({ 
    name: 'RootQueryType', 
    fields:{ 
     user: { 
      type: UserType, 
      args:{ 
       id: {type: GraphQLString} 
      }, 
      resolve(parentValue, args){ // move the resolve function to here 
       return _.find(users, {id: args.id}); 
      } 
     }, 

    } 
}); 
+0

谢谢。这是问题所在。 你救了我几天的调试 –

+0

好吧。你能接受我的回答吗? –

相关问题