当前位置: 首页 > 知识库问答 >
问题:

无法使用graphql-middleware-sentry从GraphQL接收错误

常嘉平
2023-03-14

注意:问题在于graphql-middleware-sentry没有转发错误。答案如下,并标记为正确答案。

我目前正在处理一个表单,在前端使用React和Apollo React钩子,在后端使用GraphQL-Yoga和Prisma的混合。变异工作很好,形式也可以。但是我不能在React中接收后端抛出的错误。

 const [requestPasswordResetMutation, { data, error, loading }] = useMutation(
    REQUEST_PASSWORD_REQUEST,
    {
      errorPolicy: 'all',
    },
  )
if (!user) {
    throw Error('User not found')
  }

谁能给我一个指针,说明我应该如何将错误从后端传达到前端?

解析程序代码:

const requestPasswordReset = async (parent, { email }, context) => {
  const user = await context.prisma.user({
    email,
  })

  if (!user) {
    throw new Error('User not found')
  }

  const passwordResetToken = crypto.randomBytes(20).toString('hex')
  const passwordTokenExpiry = expiryDate()

  try {
    await context.prisma.updateUser({
      data: {
        passwordResetToken,
        passwordTokenExpiry,
      },
      where: {
        email: user.email,
      },
    })
  } catch (error) {
    console.error(error)
  }

  if (process.env.NODE_ENV === 'production') {
    // Send email
  }

  return {
    message: 'Reset token sent',
  }
}

共有1个答案

邢皓
2023-03-14

graphql-middleware-sentry有一个forwarderrors参数,默认为false。您应该将其设置为true,以防止它吞噬您抛出的错误:

const sentryMiddleware = sentry({
  forwardErrors: true,
  ...
})
 类似资料:
  • 我目前正在使用Prisma的graphql cli从endpoint下载模式。但是,即使在我部署了对模式所做的更改(部署成功)之后,每当我尝试下载模式时,我都会得到

  • 我已经在MicroProfile容器(WildFly)中部署了一个突变,并且能够在GraphQL UI中执行它: 然而,当我尝试使用cURL执行相同的突变时: 然而,它在以下方面失败了: 我还没有发现很多使用cURL等命令行工具运行变种的例子,也不知道错误在哪里。有什么帮助吗?谢谢

  • 我按照Apollo的文档在客户端和服务器上设置GraphQL订阅,虽然我已经完成了90%,但我不知道如何设置订阅通道以及如何将突变连接到这些通道,以便每当突变发生时,服务器都会将新数据推送到客户端。(对于内容,我正在制作一个Reddit克隆,人们可以在其中发布主题,其他人可以对其发表评论。所以当你看到“Topics”或“TopicList”时,把它们想象成帖子。) 到目前为止,我已经成功地为订阅设

  • 在阅读了以下文档之后,我设法将基本的graphql.timer.query.*指标发送到Datadog https://www.baeldung.com/spring-boot-actuators https://docs.spring.io/spring-boot/docs/2.0.x/actuator-api/html/#metrics https://github.com/graphql-j

  • 我正在尝试在服务器上实现基于GraphQLWebSocket的@订阅(使用NestJS@subscription)。服务器托管在AWS ECS上,位于ALB后面。我们目前通过VPC链接与ALB建立了AWS API GW连接。 我试图用我们在HTTP API GW中使用的相同的VPC链接构建一个专用的Websocket API GW。我还试图在我们的ECS上安装一个新的NLB(网络负载平衡器),并在

  • 问题内容: 目前,在graphql-java库中看不到分页的现有支持。它确实具有一些基本的中继支持,在其中,我们可以创建Facebook推荐的实现分页的方式。 这是有助于实现该目标的方法。但是,由于没有文档,因此很难理解此功能的工作原理。可有人击穿的步骤,他们将采取添加分页支持,如果他们已经有一个现成的模式,它允许像基本的查询,,等使用graphql- Java库? 问题答案: 您甚至不需要中继连