如何将 Apollo Server 错误发送给 Sentry?

问题描述 投票:0回答:2

我正在尝试将错误记录到哨兵,但我所能访问的只是

formatError
选项,该选项不包括本机错误,以便哨兵可以显示堆栈跟踪等..

node.js graphql-js apollo-server
2个回答
5
投票

传递给

formatError
的错误是一个
GraphQLError
,它包裹实际的执行错误。该错误有许多有用的属性(请参阅来源here),包括一个
originalError
属性,它公开了原始错误。但请注意,这只会填充执行错误,即解析器内部抛出的错误。其他错误,尤其是验证错误,不会有此字段,但仍会传递给
formatError

function formatError(error) {
  console.log(error.originalError)
  return error
}

除了使用

formatError
之外,您可能会发现这个包很有用,它与graphql-middleware一起使用,将为您完成繁重的工作。


0
投票

这篇博客文章帮助我解决了这个问题。 GraphQL 的想法是,你的客户端必须处理可能的错误。这就是为什么阿波罗抓住了他们而哨兵没有机会对付他们。

文章介绍了一个自定义插件,它链接到apollo服务器的进程链中,并在发生错误时通知Sentry。代码非常简单。我可以轻松地在我的 NestJS 应用程序中实现它。

© www.soinside.com 2019 - 2024. All rights reserved.