Я действительно новичок в Graphql (только вчера на самом деле).Я "играю" и пробую различные инструменты экосистемы (apollo-server, graphql.js ... ect).
Ради эксперимента я пытаюсь вызвать запрос из узла 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