首页 > 解决方案 > 如何将字符串添加到“错误数组”?

问题描述

我是graphql的新手。我使用Node.js apollo-server。当我重置错误时,对象被添加到错误数组中。但是如何添加字符串而不是对象?

例子

throw Error("error")

{"errors":["error]}

标签: node.jsgraphqlapollo-server

解决方案


您可以formatError文档中使用。

格式化从服务器返回的错误和响应的函数,以及 graphql execution( 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
  }
}

推荐阅读