2

在我的项目中,我使用 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();

任何帮助都受到高度重视

4

1 回答 1

1

不知何故,它现在工作。

我使用 tsc 再次编译了项目并启动了它,这一次它没有失败。我以为使用 npm start 也同时编译了项目,但我想我错了。

于 2020-02-19T08:31:59.080 回答