错误处理

模式验证错误

任何服务器都应该能够很好地处理错误,否则维护变得越来越难。幸运的是,我们一直在使用的工具也在这方面有所帮助。

实际上,如果现在尝试向服务器发送一个无效的请求,例如一个不存在的字段的请求,那么你将收到一个很好的错误消息。例如:

这在构建应用程序时可是非常有用的,因为这种自动模式验证可以轻松帮助开发人员了解他/她的请求有什么问题。

应用错误

一些应用程序的错误。例如,假设 createLinkurl 字段的形式作为一个字符串来调用,如模式指定的那样,但是它的内容不符合预期的 url 格式。在这种情况下,需要自己抛出错误。

幸运的是,我们需要做的就是检测问题并抛出错误。 graphql-js 会自动捕获它,并按照您的 GraphQL 响应的预期方式进行格式化。

额外的错误数据

有时只是提供一个错误信息是不够的。提供一些关于错误的结构化数据可是非常有用的。想像一下一个创建链接的表单的 Web 应用程序,想要显示无效字段的错误消息。通过分析消息来做到这一点很难的。

如果使服务器还提供一个对象,指示无效的字段(或字段)的名称那就非常完美了不是吗?

现在只需要在最终错误响应中包含额外数据。

这只是从 graphql 调用默认的 formatError,并在原始错误实例中添加 field 键。

Unlock the next chapter
如何更改发送到 GraphQL 客户端的错误消息的内容?
在服务器调用中使用 `formatError` 选项
从 `graphql-tools` 扩展一个特殊的错误类
需要自己捕获错误并更改其内容
没法子