Ошибка Pothos GraphQL: PothosSchemaError: Ref Query не реализован

Я использую Pothos GraphQL для создания схемы и запросов для своего API graphQL. Я использую Prisma в качестве ORM и @pothos/plugin-prisma в качестве плагина. Когда я запускаю сервер graphql-yoga, я получаю сообщение об ошибке ниже.

file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/config-store.ts:391
    }
     ^
PothosSchemaError: Ref Query has not been implemented
    at ConfigStore.onTypeConfig (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/config-store.ts:391:6)
    at cb (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/config-store.ts:474:3)
    at pendingActions (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/config-store.ts:446:32)
    at Array.forEach (<anonymous>)
    at ConfigStore.typeConfigs [as prepareForBuild] (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/config-store.ts:446:12)
    at BuildCache.builtTypes [as buildAll] (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/build-cache.ts:172:22)
    at SchemaBuilder.toSchema (file:///C:/Users/user/Documents/Projects/project1/node_modules/@pothos/core/src/builder.ts:597:11)
    at file:///C:/Users/user/Documents/Projects/project1/server/schema.ts:5:31
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)
[nodemon] app crashed - waiting for file changes before starting...

Это builder.ts:

import PrismaPlugin from "@pothos/plugin-prisma";
import type PrismaTypes from '@pothos/plugin-prisma/generated';
import { prisma } from "./db.js";
import SchemaBuilder from "@pothos/core";
import {DateResolver} from "graphql-scalars";

export const builder = new SchemaBuilder<{
    Scalars: {
        Date: { Input: Date; Output: Date };
    };
    PrismaTypes: PrismaTypes;
}>({
    plugins: [PrismaPlugin],
    prisma: {
        client: prisma,
    },
});

builder.addScalarType("Date",DateResolver,{});

schema.ts просто импортирует объект builder и две модели graphQL:

import { builder } from "./builder.js";
import "./models/Job.js";
import "./models/JobCostCode.js";

export const schema = builder.toSchema({});

index.ts создает и запускает сервер:

import { createYoga } from 'graphql-yoga'
import { createServer } from 'node:http'
import { schema } from "./schema.js";

const yoga = createYoga({ schema });

const server = createServer(yoga);

server.listen(4000, () => {
    console.info(' 🚀 Server is running on http://localhost:4000');
});

Я попытался просмотреть документы Pothos GraphQL, но ничего не нашел. Любая помощь будет оценена по достоинству.

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

Ответы 1

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

В вашей схеме отсутствует корневой тип запроса.

Используйте этот код для создания типа запроса:

builder.queryType({
  description: 'The query root type.',
});

Ваш тип запроса, вероятно, также должен иметь некоторые поля:

builder.queryType({
  description: 'The query root type.',
  fields: t => ({
    helloWorld: t.field({ resolve: () => "Hello World" }),
  }),
});

// Or somewhere else

builder.queryField('helloWorld', t => t.field({
  resolve: () => "Hello World",
}));

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