为什么此GraphQL查询返回null?

时间:2018-04-17 22:24:54

标签: graphql

架构:

const graphql = require('graphql');
const _ = require('lodash');
const {
    GraphQLObjectType,
    GraphQLString,
    GraphQLInt,
    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 RootQueryType = new GraphQLObjectType({
    name: 'RootQuery',
    fields: {
        user: {
            type: UserType,
            args: { id: {type: GraphQLString} },
            resolve(parentValue, args) {
                return _.find(users, args.id);
            }
        }
    }
});

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

快递:

const express = require('express');
const expressGraphQL = require('express-graphql');
const schema = require('./schema/schema')

const app = express();

app.use('/graphql', expressGraphQL({
    schema,
    graphiql: true,
}));

app.listen(4000, () => {
    console.log('Listening');
});

查询:

{
  user(id:"23") {
    id,
    firstName,
    age
  }
}

尝试学习GraphQL,但在我的生活中无法弄清楚我的查询/架构有什么问题。

1 个答案:

答案 0 :(得分:1)

您只需要更改您拨打lodash find的方式:

return _.find(users, { id: args.id });