GraphQL 是一种用于构建 API 的查询语言和运行时环境。它可以让客户端在一个请求中精确地描述需要的数据,而无需多次往返服务器。在 GraphQL 系统中,错误是常见的情况,尤其是当客户端向服务器发送了无效的请求时。本文将介绍在 GraphQL 中处理错误消息的方法和实践。
GraphQL 的错误类型
GraphQL 中的错误可以分为两种类型:语法错误和运行时错误。
语法错误是当客户端向服务器发送了一个无效的请求时发生的,例如一个不受支持的查询字段或变量名。在这种情况下,服务器无法解析请求,并且会返回一个解析错误。
运行时错误是在服务器接受了客户端的请求并尝试处理它时发生的。这可能是由于查询参数不正确或服务器上发生的错误导致的。在这种情况下,服务器将返回一个包含有关错误的信息的 JSON 对象。
处理GraphQL 错误的方法
- 使用错误处理中间件
在 Express 等 GraphQL 框架中引入错误处理中间件,可以在查询过程中中间处理失败请求。错误处理中间件会捕获所有产生的错误,然后将其转发到下一个回调函数。错误处理中间件应该在最后一个回调函数之后定义,否则将覆盖前面的回调函数。
以下是一个可以处理语法和运行时错误的示例:
-- -------------------- ---- ------- ------------------- ------------- ------- ---------------- --------- ----- ------------ ----- -- -- -------- -------------- ---------- ---------------- ------ ------------ ----- ---------- --- -------------------- ----- -- -- -------- -------------- ---------- ---------------- ------ ------------ ----- ---------- -- ----
- 使用错误处理函数
GraphQL 服务器可以使用一个错误处理函数处理 GraphQL 查询中的错误,可以使用此函数自定义查询中的错误消息。在查询处理过程中,如果存在任何错误,则将调用此函数。
-- -------------------- ---- ------- ----- --------------- - --- --------------- ------ --- ------------------- ----- -------- ------- - ------- - ----- ----------- ----- - --- - ----- ------------- - -- --------------- ----- -------- ----- - -- ------------------- - ----- --- ------------- ---- -- ---------- --- -------- - ------ ----------------- - - - --- ------------ ----- -- - ------ - -------- ------------ ----- ------ --------- ----------------- ----- -------- -- - ---
使用错误处理函数,您可以为特定的错误类型提供自定义错误消息,以及其他有用的信息,例如错误代码和错误位置。
错误消息处理的实践建议
考虑错误消息的历史,以便确保它是有意义的,以及其他开发人员能够从中获得更多信息。
错误消息应该是有用的,并且应妥善解释错误发生的原因,以避免过度消耗其他开发人员的时间,让其自己去寻找更多的信息。
始终使用有意义的错误代码,以便其他开发人员能够通过代码或日志轻松跟踪和查找错误,以更好地解决和管理错误。
在错误处理函数中,添加其他有用的信息,例如最后一次错误的位置、类型等,以便针对此类错误进行更好的搜索和过滤。
结论
GraphQL 系统会经常发生错误,这些错误可能会影响查询结果,因此我们必须处理好这些错误。为了避免出现意外结果,处理好错误信息以保证 GraphQL 系统的健康运作,是一个前端开发人员的必需技能。
在本文中,我们介绍了 GraphQL 的错误类型以及如何处理这些错误信息的实践方法。如果您遇到了类似的问题,请尝试使用本文中的方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/676f4dd3e9a7045d0d717ee3