Почему этот запрос GraphQL возвращает null?

Схема:

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.info('Listening');
});

Запрос:

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

Пытаюсь изучить GraphQL и не могу понять, что не так с моим запросом / схемой.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
534
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам просто нужно изменить способ вызова lodash's find:

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

О боже, я иногда тупой. Я на самом деле очень хорошо знаю lodash и смотрел на все, кроме lodash lol.

hraesvelgr 18.04.2018 08:08

Другие вопросы по теме