“User”类型的字段“me”必须具有一系列子字段

2023-12-08

嗨,我正在努力学习GraphQL语言。我有下面的代码片段。

// Welcome to Launchpad!
// Log in to edit and save pads, run queries in GraphiQL on the right.
// Click "Download" above to get a zip with a standalone Node.js server.
// See docs and examples at https://github.com/apollographql/awesome-launchpad

// graphql-tools combines a schema string with resolvers.
import { makeExecutableSchema } from 'graphql-tools';

// Construct a schema, using GraphQL schema language
const typeDefs = `
    type User {
        name: String!
        age: Int!
    }

    type Query {
        me: User
    }
`;

const user = { name: 'Williams', age: 26};

// Provide resolver functions for your schema fields
const resolvers = {
  Query: {
    me: (root, args, context) => {
      return user;
    },
  },
};

// Required: Export the GraphQL.js schema object as "schema"
export const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
});

// Optional: Export a function to get context from the request. It accepts two
// parameters - headers (lowercased http headers) and secrets (secrets defined
// in secrets section). It must return an object (or a promise resolving to it).
export function context(headers, secrets) {
  return {
    headers,
    secrets,
  };
};

// Optional: Export a root value to be passed during execution
// export const rootValue = {};

// Optional: Export a root function, that returns root to be passed
// during execution, accepting headers and secrets. It can return a
// promise. rootFunction takes precedence over rootValue.
// export function rootFunction(headers, secrets) {
//   return {
//     headers,
//     secrets,
//   };
// };

Request:

{
  me
}

回复:

{
  "errors": [
    {
      "message": "Field \"me\" of type \"User\" must have a selection of subfields. Did you mean \"me { ... }\"?",
      "locations": [
        {
          "line": 4,
          "column": 3
        }
      ]
    }
  ]
}

有谁知道我做错了什么?如何修复它?


来自文档:

GraphQL 对象类型具有名称和字段,但在某些时候这些 字段必须解析为一些具体数据。这就是标量的地方 类型进来:它们代表查询的叶子。

GraphQL 要求您以仅返回的方式构建查询具体数据。每个字段最终都必须解析为一个或多个标量(或枚举)。这意味着您不能只请求解析为某种类型的字段,而不指示您想要返回该类型的哪些字段。

这就是您收到的错误消息告诉您的信息——您请求了User类型,但您没有告诉 GraphQL 至少有一个字段要从该类型返回。

要修复它,只需更改您的请求以包含name像这样:

{
  me {
    name
  }
}

... or age。或两者。但是,您不能请求特定类型并期望 GraphQL 为其提供所有字段——您始终必须为该类型提供一系列(一个或多个)字段。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“User”类型的字段“me”必须具有一系列子字段 的相关文章

随机推荐

  • OpenCV 不适用于 Visual Studio

    我刚刚安装了 openCV 版本 我的计算机上有 3 00 beta 我正在尝试使用 VS2013 对其进行测试 我遵循快速入门指南 1 Windows 安装 使用预构建库 2 微软VS中的OpenCV 使用本地方法和x64 vc12库目录
  • git svn 在非标准 svn 存储库布局上指定分支和标签

    布局是 Branches Project1 Branch11 Branch1N Project2 Branch21 ProjectX not anywhere else Excluded1 Excluded2 Excluded3 Exclu
  • 为什么即使从未调用 TransactionScope.Complete() 也会提交嵌套事务?

    我正在测试嵌套事务如何工作 并发现了这种令人不安和意外的行为 using TransactionScope otx new TransactionScope using SqlConnection conn1 new SqlConnecti
  • 如何更新 Ionic Framework 中 Angular 的版本?

    我在使用 Angular 过滤器时遇到一些问题 每个人都说 是因为您没有使用 Angular 1 3 8 或更高版本 我只是通过执行以下操作来实现我的版本angular version在控制台上并且 Object full 1 3 6 ma
  • 将现有的 Android Studio 项目添加到 VSTS

    我有一个使用 Kotlin 在 Android Studio 中开发的现有 Android 项目 它尚未受到版本控制 我想将其添加到 Visual Studio Team Services 的新经典 TFVC 项目中 而不是 Git 项目中
  • 我可以通过 SQL Server 触发器调用 C# 函数吗?

    外部应用程序进入我的数据库以在 Sql 服务器表中插入行 我自己有一个网络应用程序 我想在这个表中的每个插入中 在服务器端进行一些处理 我的想法是在表上插入时创建一个触发器 然后调用适当的函数 做这个的最好方式是什么 我使用带有 LINQ
  • 允许读、写: if request.auth != null;

    我有这个警告 除非您更新安全规则 否则您的 Cloud Firestore 数据库将开始拒绝客户端请求 它说我有一天要改变它们 我对此不太了解 我尝试观看一些视频 但我无法理解 看到我可以更改日期 但更喜欢有适当的规则 到目前为止 我对我的
  • 错误:无法读取服务器:远程使用 ltk 时没有此类变量

    我正在摆弄ltk因为它提供了运行远程 GUI 的选项 但是 当尝试使用远程 GUI 时 我遇到了在本地运行 ltk 时不会遇到的问题 in package ltk user defun add current investigation f
  • 如何在dynamodb中使用自动递增主键id

    我是 dynamodb 的新手 我想在使用时自动增加 id 值putitem与 dynamodb 可以这样做吗 Answer recommended by AWS Collective 这是 DynamoDB 中的反模式 DynamoDB
  • 怎么知道是iphone还是ipad?

    我想知道用户使用iphone还是ipad 如果用户使用iphone我想打开相机 如果他使用ipad或在模拟器中运行我想打开库 怎么可能 如何查找设备的详细信息 如何通过xcode知道用户当前使用的设备 NSString deviceType
  • 如何使用 scipy.integrate 设置固定步长?

    我正在寻找一种方法来设置固定步长 以通过 Python 中的 Runge Kutta 方法解决我的初始值问题 因此 我如何才能告诉scipy integrate RK45保持其积分过程的不断更新 步长 非常感谢 Scipy integrat
  • 如何交互式更新 matplotlib imshow() 窗口?

    我正在研究一些计算机视觉算法 我想展示 numpy 数组在每个步骤中如何变化 现在有效的是 如果我有一个简单的imshow array 在我的代码末尾 窗口显示并显示最终图像 然而 我想做的是随着图像在每次迭代中的变化而更新并显示 imsh
  • 检查哪个表单有错误

    我有一个模式窗口 我只想在页面上的多个表单之一出现错误时启动该窗口 有没有办法使用 el 来识别特定表单是否有错误 示例伪代码
  • 如何用ajax查看表单上传的文件?

    我正在尝试上传以表单形式发送的文件 我正在尝试使用 php 但在 html 和 php 之间我使用 JS Jquery 和 ajax 因为我不希望页面重新加载 我在使用 FILES 时遇到了麻烦 在这里 我使用带有 javascript 操
  • 数组声明方括号内的星号在 C 中意味着什么[重复]

    这个问题在这里已经有答案了 我正在编写一个自定义 C99 解析器 我得到了语法this关联 该语法表示以下是声明数组的有效语法 int arr 语法的相关部分如下 direct declarator identifier declarato
  • 无法阻止 Protractor 显示文件下载提示

    Problem 我正在测试下载文件 但是当我触发下载时 会出现 另存为 提示 我在这看到了一个解决方案所以问题但这似乎对我不起作用 Config 我的量角器配置文件如下所示 coffeescript exports config capab
  • 写入新文件时自动创建完整路径

    我想写一个新文件FileWriter 我这样使用它 FileWriter newJsp new FileWriter C user Desktop dir1 dir2 filename txt Now dir1 and dir2目前不存在
  • 无法解析的日期:“Fri Oct 10 23:11:07 IST 2014”(偏移量 20)

    我创建了这个函数来解析日期 但这给出了异常 Unparseable date Fri Oct 10 23 11 07 IST 2014 at offset 20 请帮助 因为我无法弄清楚这段代码有什么问题 public Date parse
  • 从一个列表列表中减去另一个列表列表

    我想从另一个列表列表的相应元素中减去一个列表列表 例如 a 1 2 3 4 b 1 2 3 0 预期输出为 c 0 0 0 4 仅使用一个列表与另一个列表进行减法很容易 c i j for i j in zip a b 但这不适用于列表和返
  • “User”类型的字段“me”必须具有一系列子字段

    嗨 我正在努力学习GraphQL语言 我有下面的代码片段 Welcome to Launchpad Log in to edit and save pads run queries in GraphiQL on the right Clic