我目前正在使用NodeJS尝试GraphQL,我不知道为什么在以下查询中出现此错误:
{
library{
name,
user {
name
email
}
}
}
我不确定,如果类型
我的解析库
是正确的,因为在任何例子中,我都看到他们使用了new GraphQL. GraphQLList()
,但在我的情况下,我真的想返回一个用户对象,而不是用户数组。
我的代码:
const GraphQL = require('graphql');
const DB = require('../database/db');
const user = require('./user').type;
const library = new GraphQL.GraphQLObjectType({
name: 'library',
description: `This represents a user's library`,
fields: () => {
return {
name: {
type: GraphQL.GraphQLString,
resolve(library) {
return library.name;
}
},
user: {
type: user,
resolve(library) {
console.log(library.user);
return library.user
}
}
}
}
});
const resolveLibrary = {
type: library,
resolve(root) {
return {
name: 'My fancy library',
user: {
name: 'User name',
email: {
email: 'test@123.de'
}
}
}
}
}
module.exports = resolveLibrary;
错误:
Error: Expected Iterable, but did not find one for field library.user.
因此,我的库
模式提供了一个user
字段,该字段返回正确的数据(console.log)。
我也有同样的问题。我使用的是find过滤器。
我猜你的user
是GraphQLList
的一个实例,这就是为什么字段用户期望解析为一个可迭代的对象。
我也遇到了这个问题。从解析器返回的内容似乎与模式中的返回类型不匹配。
特别是对于错误消息期望的Iterable,但没有找到一个字段library.user.
,您的模式期望一个数组(Iterable),但您没有在解析器中返回数组
我在我的模式中有这个。js:
登录(邮箱:String,密码:String):【成功登录】
我把它改成了:
login(电子邮件:String,密码:String):SuccessfulLogin
请注意“SuccessfulLogin”周围的方括号。由您决定是更新解析器返回类型还是更新模式的期望
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。 具有iterable类型的集合可以通过新的for ... of循环来遍历。 for ... of循环是ES6引入的新的语法,请测试你的浏览器是否支持: 'use strict'; var a = [1, 2, 3];
我已经用MapStruct 1.1工作了几天,但还没有达到我所需要的。 我想做的是:我想将JPA实体映射到DTO,以便在Primefaces项目中实现更好的属性视图绑定。 所以我有我的实体如下: 病人JAVA 人JAVA 我想把这些实体画成这样: 耐心等待。JAVA 潘松多。JAVA 我编写了Mapper类和一个实用程序,就像GitHub上的官方示例中描述的那样(https://github.co
什么是迭代? 例子: for a in b.value(): pass for x, y in de.items(): pass 字符串也可以 for a in 'abcv': pass 如何判断是否可以迭代 请看代码 from collections import Iterable isinstance('abc', Iterable) True 这里就引出了
问题内容: 我对所有有趣的迭代器都非常着迷,但是我感到困惑的是这两个函数之间的区别以及为什么存在。 两种功能有什么区别? 问题答案: 前者只能处理不可打包的迭代。后者可以处理无法完全解包的可迭代对象,例如无限生成器。 考虑 此外,仅拆箱操作是一项急切的,前期成本高的活动,因此,如果您的迭代有效果,则希望懒惰地进行评估,这是您的最佳选择。
我需要创建一个助手方法,该方法允许创建任何Iterable的和 然而,这种方法只适用于int,但我们也有double和long。因为不能有两个具有相同签名的方法(我们的编译器认为整数和(Iterable)) 但是这个方法不会编译(原因:操作符=是未定义的对象,对象)。我能在这里做什么?我知道在C中你可以重载运算符,但在Java中不行。但是每个扩展数字的类都会重载=运算符。我能在这里做什么? 提前谢
问题内容: Iterables提供了两种方法 但只有一个 是否存在任何破坏对称性的设计/实现原因? 问题答案: 我认为要点是,没有理由可以使用来完成此操作。Guava尽力使API保持较小,因此没有添加可以/应该以其他方式轻松完成的事情。 另一方面,还没有一种机制可以测试iterable是否为空,如果是,则返回默认值而不是第一个值。因此,。 同样,没有简单的方法来获取最后一个元素,因此和