【发布时间】:2021-01-20 02:54:14
【问题描述】:
我目前正在使用 NodeJS 尝试 GraphQL,但我不知道为什么以下查询会出现此错误:
{
library{
name,
user {
name
email
}
}
}
我不确定我的resolveLibrary 的type 是否正确,因为在任何示例中我都看到他们使用了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.
所以我的library 架构提供了一个user 字段,它返回正确的数据(调用了console.log)。
【问题讨论】:
-
这听起来可能是您正在导入的用户类型的问题。您能否更新您的问题以包含
user.js的代码? -
非常感谢,你说的对,我的user.js导出错了……
-
请在编辑中显示您的解决方案?
标签: node.js graphql graphql-js