带有快速错误的 GraphQL:Query.example 字段类型必须是输出类型,但得到:[object Object]

Posted

技术标签:

【中文标题】带有快速错误的 GraphQL:Query.example 字段类型必须是输出类型,但得到:[object Object]【英文标题】:GraphQL with express error : Query.example field type must be Output Type but got: [object Object] 【发布时间】:2017-01-22 14:38:25 【问题描述】:

我正在尝试使用 graphql 运行 express 服务器,但出现以下错误:

错误:Query.example 字段类型必须是输出类型但得到:[object Object]。

路由中使用的express-graphql:

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

架构如下所示:

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) 正在处理另一个项目,所以我认为它们不是问题。

有什么想法吗? “输出类型”是什么意思?

【问题讨论】:

【参考方案1】:

如果

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

是您的查询,那么您弄错了, 查询的字段,因此您的示例中的查询应该如下所示:

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

无论如何,错误是“类型”不是有效的 GraphQLType。 那么查询将如下所示

query 
   testString

将导致:


    testString: "Hello World!"

如果意思是 exampleScheme 是其他对象, 请确保您使用以下方式创建它:

new GraphQLObjectType( .... Options );

希望对您有所帮助! :)

【讨论】:

感谢 HagaiCo,因为我从另一个项目导入了方案,示例方案是“GraphQLSchema”而不是“GraphQLObjectType”。

以上是关于带有快速错误的 GraphQL:Query.example 字段类型必须是输出类型,但得到:[object Object]的主要内容,如果未能解决你的问题,请参考以下文章

带有错误“无法查询字段”的 Graphql 内容查询

graphql + apollo-server-express,如何处理 express authMiddleware 中的身份验证错误?

带有 GraphQL 解析错误的 Google Apps 脚本 API 请求

带有 JSon 的 GraphQL 和 Python - 未转义字符的语法错误

在 GraphQL 中不能有带有嵌套字段的输入类型。错误:预期类型是 GraphQLInputType,但不是

使用带有 Kotlin 和流的 Android 上的 Apollo 订阅 GraphQL 时处理网络错误