Как добавить строку в «массив ошибок»? - PullRequest
0 голосов
/ 09 января 2020

Я новичок в graphql. Я использую Node.js apollo-server.when, когда я сбрасываю ошибку, объект добавляется в массив ошибок. Но как это сделать, чтобы добавить строку, а не объект?.

пример

throw Error("error")

{"errors":["error]}

1 Ответ

2 голосов
/ 09 января 2020

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

Функции для форматирования ошибок и ответов, возвращаемых с сервера, а также параметров для выполнения graphql (runQuery)

Например,

server.ts

import { ApolloServer, gql } from 'apollo-server';
import { GraphQLError } from 'graphql';

const typeDefs = gql`
  type Query {
    _: Boolean
  }
`;
const resolvers = {
  Query: {
    _: () => {
      throw new Error('error');
    },
  },
};
const server = new ApolloServer({
  typeDefs,
  resolvers,
  formatError(error: GraphQLError) {
    return error.message as any;
  },
});

server.listen().then(({ url }) => {
  console.log(`Apollo server is listening on ${url}`);
});

Запрос GraphQL для клиентской стороны:

query {
  _ 
}

Ответ :

{
  "errors": [
    "error"
  ],
  "data": {
    "_": null
  }
}
...