«Схема не настроена на мутации». - PullRequest
1 голос
/ 19 февраля 2020

В моем проекте я использую npm, сервер apollo и typeorm для настройки моего сервера. Когда я пытаюсь создать мутацию, я получаю это сообщение об ошибке «Схема не настроена для мутаций». Я пытался найти решение, но во всех других решениях они используют библиотеки, отличные от меня, поэтому они не очень помогают ... Я также посмотрел на примеры, и в их коде он прекрасно работает для импорта мутации в файл резолвера, а затем импортируйте резолвер в схему. Поскольку в нем также говорится, что «схема не настроена», мне интересно, нужно ли мне добавить конфигурацию в мой tsconfig. json, которая позволяет проекту использовать схемы с мутациями.

Мутация выглядит так:

import {InputType, Field} from "type-graphql";

@InputType()
export class CreateBookInput{
    @Field()
    title: string;

    @Field()
    author: string;
}

Я импортирую этот класс в свой класс распознавателя:


import { Resolver, Query, Mutation, Arg } from "type-graphql";
import { Book } from "../models/book";
import {CreateBookInput} from "../inputs/createBookInput";

@Resolver()
export class BookResolver {
    @Query(() => [Book])
    books() {
        return Book.find()
    }

    @Mutation(() => Book)
    async createBook(@Arg("data") data: CreateBookInput) {
        const book = Book.create(data);
        await book.save();
        return book;
    }

}

Это позже импортируется в мой файл index.ts, где я также обрабатываю свою схему:

import "reflect-metadata";
import { createConnection } from "typeorm";
import { ApolloServer } from "apollo-server";
import { BookResolver } from "./resolvers/bookResolver"; // add this
import { buildSchema } from "type-graphql";

async function main() {
  const connection = await createConnection()
  const schema = await buildSchema({
    resolvers: [BookResolver]
  })
  const server = new ApolloServer({ schema })
  await server.listen(4000)
  console.log("Server has started!")
}

main();

Любая помощь высоко ценится

1 Ответ

1 голос
/ 19 февраля 2020

Каким-то образом это работает сейчас.

Я снова скомпилировал проект, используя ts c, и запустил его, и на этот раз он работал без сбоев. Я думал, что с помощью npm start также скомпилировал проект одновременно, но, думаю, я ошибся.

...