You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用graphql-request获取HTTP状态码?

获取graphql-request请求的HTTP状态码

嘿,我超爱graphql-request的简洁感!你遇到的这个问题其实是因为request这个便捷方法默认只返回GraphQL查询的数据结果,并不会把HTTP响应的状态码这类底层信息暴露出来——你代码里拿到的response其实就是查询到的Post数据,自然没有status属性啦。

要获取HTTP状态码,你可以改用rawRequest方法,它会返回包含完整响应细节的对象,其中就包括状态码:

const { rawRequest } = require('graphql-request');

const query = `{
  Post(id: 1) {
    id
    title
    views
    User { name }
    Comments { date body }
  }
}`;

rawRequest('http://localhost:3000', query)
  .then(({ data, status }) => {
    console.log('HTTP状态码:', status); // 这里就能拿到状态码了
    console.log('查询结果:', data);
  })
  .catch(err => {
    // 如果是HTTP层面的错误(比如404、500),错误对象里也能拿到状态码
    if (err.response) {
      console.error('请求错误状态码:', err.response.status);
    }
    throw new Error(err);
  });

补充说明:

  • request方法是rawRequest的封装,它自动提取了data字段返回,简化了调用但丢失了底层响应信息
  • 如果你的项目已经大量使用request方法,也可以通过创建GraphQLClient实例并自定义请求拦截器来获取状态码,但rawRequest是最直接的方案

内容的提问来源于stack exchange,提问作者DonJuanEco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:32:38