我正在尝试使用 apollo-server的自定义错误,似乎我的自定义错误有一个属性(代码),在formatError中不可用.
import ExtendableError from 'es6-error'

export default class MyError extends ExtendableError {
  constructor(args) {
    let code = Object.keys(args)[0]
    let message = Object.values(args)[0]
    super(message)
    this.code = code
  }
}

我有一个简单的错误处理程序工作原理如下:

let INVALIDREQUEST = 'invalid request'
let e = new MyError({INVALIDREQUEST})
console.log(e.code) // => "INVALIDREQUEST"

我遇到了麻烦,因为当我从formatError中记录error.code时它不可用.

formatError: function (error) {
  console.log(error.code) // => undefined
  return error
}

如何在formatError中传播错误的自定义属性(如代码)?

解决方法

因为Apollo Server使用GraphQL.js,我们可以通过深入挖掘找到解决方案: https://github.com/graphql/graphql-js/blob/44f315d1ff72ab32b794937fd11a7f8e792fd873/src/error/GraphQLError.js#L66-L69

从本质上讲,GraphQL.js引用实现捕获了解析器中的任何错误,并将它们传递给formatError函数,但它将它们包装在特殊的GraphQL特定错误对象中,具有路径,位置和源等属性.

您可以在formatError中的错误对象的originalError字段中找到您从解析程序中抛出的原始错误,如下所示:

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

javascript – Apollo Server的自定义错误对象的更多相关文章

  1. GraphQL在react中的应用示例详解

    这篇文章主要为大家介绍了GraphQL在react中的应用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  2. GraphQL入门总体创建教程

    这篇文章主要为大家介绍了GraphQL入门总体创建教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. SpringBoot集成Graphql Query实战示例

    这篇文章主要为大家介绍了SpringBoot集成Graphql Query实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. Laravel中GraphQL接口请求频率实战记录

    这篇文章主要给大家介绍了关于Laravel中GraphQL接口请求频率的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. 从Hello World开始理解GraphQL背后处理及执行过程

    这篇文章主要为大家介绍了从Hello World开始理解GraphQL背后处理过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  6. 使用与输入和输出类型相同的类的NestJS GraphQL

    看完这篇文章后,我想知道假设“代码优先”范式的正确方法是什么。下面的方法似乎有效——使用Location作为输入和输出。我知道对于共享代码的输入和输出类型有很多不好的地方——输入有各种验证,而输出没有,等等。但我认为Location是一个很好的例外,因为从大的角度来看,让我们假设Location像String或Int——在整个模式中被视为一个原语:然后我不明白为什么我不应该重复使用像Location这样简单的东西。其他人对此有看法吗?

  7. React内存使用情况部署到Heroku

    我最近完成了一个MERN堆栈web应用程序,并试图将其部署到Heroku上。它看起来像是已部署的,但当我尝试登录或创建用户时,它显示404未找到/grapql。当运行heroku日志-tails时,它在发布后表示,应用程序由于内存使用超过配额而崩溃。所以我在本地运行它,并使用DevTools查看内存使用情况。我目前正在尝试重构搜索到的内容,并使用react.llazy只显示用户的观点。

  8. 实现GraphQL Go解析器时的奇怪错误

    请帮帮我,我迷路了。

  9. 就数据库查询而言,GraphQL如何将分页应用于嵌套连接?

    我第一次尝试GraphQL、分页和Rails中的批加载。问题是,当我像下面这样运行查询时:我看到生成了以下SQL语句:所以,我的困惑是这里LIMIT的用法。Goal上的第一个查询是根据请求的页面添加LIMIT和OFFSET。但是,嵌套连接正在设置一个LIMIT=100,这与我的页面请求没有任何关系,而且我没有在任何地方设置值100。那么,为什么限制为100,以及如何应用页面大小?所以,也许预加载是正确的方式,除了可能我一开始没有正确实现分页?

  10. 更改对graphQL查询的响应

    我有一个返回如下对象的查询:其中一些字段将包含非字母数字字符,我希望从响应中去掉这些字符但这行不通。如何在使用数据之前修复数据?我不控制后端,也不控制数据如何进入后端。

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部