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

Apollo GraphQL查询Node.js时收到400状态码错误求助

问题诊断与修复方案

核心问题分析

  1. GraphQL查询语法不完整:前端定义的GET_DATA查询缺少结尾闭合大括号,导致请求格式非法,直接触发400状态码错误。
  2. 变量类型不匹配:后端schema中accountID的类型是GraphQLInt(整数),但前端查询里将$accountID声明为String!(字符串),类型不匹配导致请求被GraphQL服务器提前拦截,根本到不了resolve函数。

具体修复步骤

1. 修正查询语法与类型定义

修改queries.js,补充缺失的闭合大括号,并将$accountID的类型改为Int!,与后端schema保持一致:

import { gql } from '@apollo/client';

const GET_DATA = gql`
query GetData($accountID: Int!, $auth: String!) {
    data(accountID: $accountID, auth: $auth) {
            id
            name
        }
}
`

export { GET_DATA };

2. 验证变量传递

前端useQuery中传递的accountID: 1是数字类型,和修正后的Int!类型完全匹配,无需额外调整。

补充说明

GraphiQL能正常运行是因为你在GraphiQL中编写的查询是语法正确且类型匹配的,而前端代码里的查询存在两处错误,导致请求无法被服务器正确解析。修复后,请求会正常到达后端的resolve函数,你能看到console.log(args)的输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:48:15