Categories
graphql graphql-js node.js

GraphQL Expected Iterable, but did not find one for field xxx.yyy

I’m currently trying GraphQL with NodeJS and I don’t know, why this error occurs with the following query:

{
library{
name,
user {
name
email
}
}
}

I am not sure if the type of my resolveLibrary is right, because at any example I had a look at they used new GraphQL.GraphQLList(), but in my case I really want to return a single user object, not an array of users.

My code:

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: '[email protected]'
}
}
}
}
}
module.exports = resolveLibrary;

Error:

Error: Expected Iterable, but did not find one for field library.user.

So my library schema provides a user field which returns the right data (the console.log is called).