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

Del*_*ice 2 node.js graphql-js apollo-server

我正在尝试将错误记录到哨兵,但我所能访问的formatError只是不包含本机错误的选项,以便哨兵可以显示堆栈跟踪等等。

Dan*_*den 5

传递给的错误formatError是 a GraphQLError,它包装了实际的执行错误。该错误具有许多有用的属性(请参阅此处的源代码),其中包括一个originalError公开原始错误的属性。但是请注意,这只会为执行错误填充,即在解析器中抛出的错误。其他错误,特别是验证错误,不会有这个字段,但仍会传递给formatError.

function formatError(error) {
  console.log(error.originalError)
  return error
}
Run Code Online (Sandbox Code Playgroud)

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