Я действительно новичок в Graphql (на самом деле, только вчера). Я «играю» и пробую различные инструменты экосистемы (apollo-server, graphql.js ... и т. Д.).
Ради экспериментов я пытаюсь вызвать запрос из nodejs (а не от клиента в браузере, такого как приложение реакции)
Прежде всего, это моя простая схема вместе с резолверами:
export const mySchema = gql`
type User {
id: ID!
name:
surname: String
}
# root query has been defined in another file
extend type Query {
users: [User]
test: [User]
}
`
export const myResolvers = {
users: () => [ __array_of_users__ ],
test: () => /* this is where I would like to re-invoke the 'users query'
}
Используя функцию makeExecutableSchema
, я создаю объект schema
с моими типами и распознавателями и экспортирую эту схему в серверное приложение apollo. Пока все работает нормально.
Теперь, следуя этому предложенному решению stackoverflow, я создал вспомогательную функцию, которая должна позвольте мне вызвать запрос, определенный в моей схеме, следующим образом:
import { graphql } from "graphql";
import { schema } from "./my-schema";
export const execute = str => {
return graphql(schema, str );
};
С помощью этой вспомогательной функции мои преобразователи становятся:
import { gql } from "apollo-server-express";
import { execute } from '__path_to_helper_function__';
export const myResolvers = {
users: () => [ __array_of_users__ ],
test: () => execute( gql`
query users {
name
}
`)
}
Но на детской площадке, когда я пытаюсь выполнить запрос:
{
test {
name
}
}
Я получаю следующую ошибку:
Я даже не знаю, можно ли сделать то, что я пытаюсь сделать (вызвать запрос из узла). Любое предложение будет принято с благодарностью.
Thnaks