gpt4 book ai didi

graphql - 使用 graphql-js 的相关 Http 响应代码

转载 作者:行者123 更新时间:2023-12-02 12:16:22 24 4
gpt4 key购买 nike

好吧,事情就是这样,我正在尝试弄清楚如何使用 graphql-js 处理错误。 (在没有继电器的情况下)

不够具体!?好吧,由于 graphql-js 正在捕获解析函数中抛出的所有错误,因此我对如何正确处理错误和 http 响应感到有点困惑。

所以我没什么想法,想知道你对此有何看法!

  1. 即使包含错误,graphql 响应也始终返回 200 OK。 (不喜欢那个)

  2. 切换 result.errors[0] 的大小写并返回有关错误的 http 响应,如果没有错误则返回 result.data。 (这可能最终成为一个非常长的开关盒)

    • 在解析函数中处理错误并抛出和对象(例如 { httpCode: 404, msg: 'No X found with the request id' } )

    • 在 Express app.post 函数(或任何 Web 框架)中,具有类似以下内容:

      app.post('/graphql', function(req, res) {
      let result = await graphql(req.body);

      if(result.errors.size) {
      let e = result.errors[0];
      res.status(e.httpCode).send(e.msg);
      }

      res.json(result.data);
      }

    由于错误对象的编码方式,这目前不起作用......或者至少我还没有找到如何将其从 graphql 中取出。我正在考虑也许研究一下 graphql-js 源代码,但我想我最好先问一下你们,因为我可能会遗漏一些明显的东西。

显然,欢迎更好的想法!

干杯:D

最佳答案

我也在想办法解决这个问题。

我能想到的最好办法就是在我的解析器中抛出一个自定义错误。查看apollo-errors 。我不确定这是否是最好的方法,但它可能适合您。

关于graphql - 使用 graphql-js 的相关 Http 响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com