Ошибка: тело должно быть строкой. Получено: { распознаватели: [[функция HelloResolver]], проверка: false } при использовании Type-graphql и apollo-server-express

avatar
Hayden Rieder
1 июля 2021 в 16:01
891
1
0

Я следил за этим полным руководством Бена Авада и когда он добавил в схему преобразователь, все прошло хорошо, но когда я попробовал точно такой же код, я получил ошибку выше. Я использую graphql 15.5.1 и type-graphql 1.1.1 с версией apollo-server-express 2.25.2. Мой код выглядит так:

import {Query, Resolver} from "type-graphql";

@Resolver()
export class HelloResolver {
    @Query(() => Number)
    hello() {
        return 5;
    }
}

import { ApolloServer } from "apollo-server-express";
import { buildSchema } from "graphql";
import {HelloResolver} from "./resolvers/hello";

const express = require('express');
const PORT : number = Number(process.env.PORT) || 3000;

const main = async () => {
    const apollo = new ApolloServer({
        schema: await buildSchema({
            // ERROR DUE TO LINE BELOW
            resolvers: [HelloResolver],
            validate: false,
        }),
    });

    apollo.applyMiddleware({ app });

    app.listen(PORT, () => {
        console.log(`Listening on port ${PORT}...`);
    });
}

main().catch((e) => {
    console.error(e);
});
Источник

Ответы (1)

avatar
loganfsmyth
1 июля 2021 в 16:26
0
import { buildSchema } from "graphql";

должно быть

import { buildSchema } from "type-graphql";

Вы можете видеть, что в тот же код указан в описании видео.