几个小时以来,我一直在努力解决这个问题。我在 Node.js 中有一个非常简单的 GraphQL 实现,如下所示。
const UserType = new GraphQLObjectType({
name: 'User',
fields: () => ({
id: new GraphQLNonNull(GraphQLString),
username: new GraphQLNonNull(GraphQLString)
})
});
const QueryType = new GraphQLObjectType({
name: 'QueryType',
fields: () => {
user: {
type: UserType,
args: { id: { name: 'id', type: new GraphQLNonNull(GraphQLString) } },
resolve: (parent, args) => getUser(args.id)
}
})
});
const schema = new GraphQLSchema({
query: QueryType,
});
如果“用户”字段的“类型”QueryType是其他任何内容(例如,GraphQLString),它就可以工作。但是,如果是UserType,我会收到以下错误。
"Error: User.id field type must be Output Type but got: undefined."
堆栈跟踪没有指向任何有用的地方,只是指向 GraphQL 模块本身。据我所知,这不应该是一个循环依赖问题,尽管我尝试对它进行重击以防万一。任何帮助将不胜感激,因为这让我发疯。