GraphQL

graphql/error

graphql/error 模块负责创建和格式化 GraphQL 的错误信息。你可以直接从 graphql/error 模块导入,也可以从 graphql 这个根模块导入。举例来说就是这样:

import { GraphQLError } from 'graphql'; // ES6
var { GraphQLError } = require('graphql'); // CommonJS

概览#

错误信息#

GraphQLError#

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

syntaxError#

function syntaxError(
source: Source,
position: number,
description: string
): GraphQLError;

产生一个表示语法错误的 GraphQLError,它包含原始语句中语法错误具体定位的描述性信息。

locatedError#

function locatedError(error: ?Error, nodes: Array<any>): GraphQLError {

当尝试执行 GraphQL 操作时抛出的任意一个错误,都会产生一个新的负责原始错误文档定位的 GraphQLError 。

formatError#

function formatError(error: GraphQLError): GraphQLFormattedError
type GraphQLFormattedError = {
message: string,
locations: ?Array<GraphQLErrorLocation>
};
type GraphQLErrorLocation = {
line: number,
column: number
};

给定一个 GraphQLError,根据 GraphQL 规范中的响应格式和错误分类的规则描述来格式化错误信息。

继续阅读 →graphql/execution