Простой запрос "привет" GraphQL возвращает NULL

У меня есть список запросов / мутаций / подписок, который я написал немного назад, и теперь я не могу вспомнить, как работает GraphQL.

Все, что я пытаюсь сделать, это вернуть строку с надписью «Привет».

typedef

type Hello {
  message: String
}

type Query {
  hello: Hello
}

решатель

const resolvers = {
  Query: {
    hello: () => 'Hello, world!'
  }
}

Когда я иду сделать запрос в визуализаторе GraphiQL с

{
  hello {
    message
  }
}

Я вернусь

{
  "data": {
    "hello": {
      "message": null
    }
  }
}

На всякий случай я использую apollo-server-express.

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

Ответы 1

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

Вы запрашиваете объект с именем hello с вложенным ключом с именем message.

На самом деле запрос возвращает 'Hello, world!'.message, поэтому он не выдает ошибок и не возвращает null.

Вы либо хотите hello: () => ({ message: 'Hello, world!' }), либо просто введите поле в виде строки.

Итак, я предполагаю, что если бы я хотел также вернуть другие данные, например, jwt, я бы добавил их к типу Hello, а в преобразователе я бы вернул {message: 'hello', jwt: 'supersecretjwt'}? Сработало бы это также, если бы я пытался вернуть User, а также jwt? Итак, {id: user.id, username: user.username, jwt: 'jwt'}?

Brandon Benefield 14.10.2018 05:03

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