GraphQL with express error : Query.example field t

2019-07-30 12:44发布

I'm trying to run express server with graphql and I get the following error:

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

express-graphql used in a route:

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

The schema looks like that:

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

Queries has only one query that imported from here:

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;
 }
};

The schemas (exampleScheme) and data (exampleScheme) are working on another project so I assume they're not the problem.

Any ideas? What does 'Output type' mean?

1条回答
男人必须洒脱
2楼-- · 2019-07-30 13:35

if

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

is your queries, then you got it wrong, Query's fields, hence queries in your example, should be looking like this:

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

anyway, the error is that 'type' is not a valid GraphQLType. then the query will look like this

query {
   testString
}

will result in:

{
    testString: "Hello World!"
}

if the meaning was that the exampleScheme is some other object, please make sure you are creating it using:

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

Hope it helps! :)

查看更多
登录 后发表回答