graphql/error
模块负责创建和格式化 GraphQL 的错误信息。你可以直接从 graphql/error
模块导入,也可以从 graphql
这个根模块导入。举例来说就是这样:
import { GraphQLError } from 'graphql'; // ES6var { GraphQLError } = require('graphql'); // CommonJS
class GraphQLError extends Error {constructor(message: string,nodes?: Array<any>,stack?: ?string,source?: Source,positions?: Array<number>,originalError?: ?Error,extensions?: ?{ [key: string]: mixed })}
GraphQLError 表示 GraphQL 产生的错误信息。它包含一些用于调试的信息,比如查询语句中错误发生的位置。最常见的错误信息就是下面的 locatedError
。
function syntaxError(source: Source,position: number,description: string): GraphQLError;
产生一个表示语法错误的 GraphQLError,它包含原始语句中语法错误具体定位的描述性信息。
function locatedError(error: ?Error, nodes: Array<any>): GraphQLError {
当尝试执行 GraphQL 操作时抛出的任意一个错误,都会产生一个新的负责原始错误文档定位的 GraphQLError 。
function formatError(error: GraphQLError): GraphQLFormattedErrortype GraphQLFormattedError = {message: string,locations: ?Array<GraphQLErrorLocation>};type GraphQLErrorLocation = {line: number,column: number};
给定一个 GraphQLError,根据 GraphQL 规范中的响应格式和错误分类的规则描述来格式化错误信息。