2016-09-14 188 views
1

我试图运行与graphql Express服务器,我收到以下错误:GraphQL与快递错误:Query.example字段类型必须是输出类型,但得到:[对象的对象]

Error: Query.example field type must be Output Type but got: [object Object].

express-

app.use('/graphql', graphqlHTTP(req => ({ 
schema, 
pretty: true 
}))); 

架构看起来像:在路线graphql使用

export default new GraphQLSchema({ 
query: new GraphQLObjectType({ 
    name: 'Query', 
    fields: queries 
}) 
}); 

查询只有一个查询从这里进口:

import { 
GraphQLList, 
GraphQLID, 
GraphQLNonNull 
} from 'graphql'; 

import exampleScheme from '../models/schemes/example'; 
import {example as exampleData} from '../models/jsons' 

export default { 
type: exampleScheme, 
resolve (root, params, options) { 
    return exampleData; 
} 
}; 

的架构(exampleScheme)和数据(exampleScheme)的另一个项目工作,所以我认为他们不是问题。

任何想法? '输出类型'是什么意思?

回答

2

如果

export default { 
type: exampleScheme, 
resolve (root, params, options) { 
    return exampleData; 
} 
}; 

是您的疑问,那么你听错了, 查询的领域,因此,在您的示例查询,应该找这样的:

export default { 
helloString: { 
    type: GraphQLString, 
    resolve (root, params, options) { 
     return "Hello World!"; 
    } 
} 
... <Next query> 
}; 

无论如何,错误的是'type'不是有效的GraphQLType。 那么查询将看起来像这样

query { 
    testString 
} 

将导致:

{ 
    testString: "Hello World!" 
} 

如果意思是,exampleScheme一些其他的对象, 请确保您使用创建它:

new GraphQLObjectType({ .... Options }); 

希望它有帮助! :)

+0

感谢HagaiCo,因为我从另一个项目导入了这些方案,exmaple scheme是'GraphQLSchema'而不是'GraphQLObjectType'。 – alonp99

相关问题