首页 > 解决方案 > express graphql 总是为解析器抛出的任何错误发送 500 Internal server error

问题描述

我在我的节点应用程序中使用 express graphql。并且它 graphql 总是为解析器抛出的任何错误发送 500 Internal server error。请提出任何解决方案,以便我得到正确的响应和状态码

标签: graphqlexpress-graphql

解决方案


每当检测到没有返回数据时,express-graphql 都会发送 HTTP 错误 500。当然,如果抛出异常,则不会有返回数据。尽管它看起来像是一个明显的错误,但开发人员对此有自己的看法。他们似乎决定提供一个选项来禁用该功能,以便服务器不应该设置 500 错误。至少这方面的未决问题仍然存在。

查看来源,我发现这些选项可以解决这个问题:

  1. 在解析器中设置除 200 以外的任何其他响应代码(例如 299(自定义))。
  2. 在错误格式处理程序中设置响应代码。这似乎是最优化的解决方案。
  3. 只是为了拿起其他图书馆=)

推荐阅读