如果你常常使用 GraphQL,你应该知道错误处理是一个很重要的问题。在传统的 RESTful API 中,错误通常通过 HTTP 状态码进行传递,但是 GraphQL 通常只返回原始数据,这为错误处理带来了一些挑战。
在这篇文章中,我们将介绍一个名为 @ozylog/graphql-errors 的 npm 包,它可以让你更容易地处理 GraphQL 错误。我们将会介绍如何使用这个 npm 包来处理查询中的错误,并且提供一些示例代码帮助你更好地理解。
什么是 @ozylog/graphql-errors?
@ozylog/graphql-errors 是一个用于处理 GraphQL 错误的 npm 包。它允许你创建一个错误映射表,将错误类型和错误消息映射到你的 GraphQL 错误。这让你能够更好地控制你的错误,并将错误信息传递给客户端。
@ozylog/graphql-errors 还可以结合 GraphQL 的自定义 Scalar 类型使用,这允许你将错误转换为特定的数据类型,比如 JSON、XML 或者 HTML。这将给客户端提供更有用的错误信息,比如 HTML 中的错误样式。
如何使用 @ozylog/graphql-errors
下面我们将介绍如何在你的代码中使用 @ozylog/graphql-errors。
首先,我们需要将 @ozylog/graphql-errors 添加到你的项目中:
npm install @ozylog/graphql-errors --save
然后,我们需要创建一个错误映射表。这个映射表将告诉 @ozylog/graphql-errors 如何将错误类型和错误消息映射到 GraphQL 错误。
-- -------------------- ---- ------- ----- - ------------ - - ------------------- ----- - ----------- - - ---------------------------------- ----- -------- - - ---------------- ------------- -------- ------ ---------- ------- ----------- ---- -- --
在这个例子中,我们定义了一个 ValidationError 类型的错误,它的状态码为 400,并且错误消息为 “Input validation error”。
现在我们已经有了一个错误映射表,我们需要让我们的代码知道如何使用它。下面是一个使用 express-graphql 中间件的例
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005589c81e8991b448d5dfc