GraphQL.js循环依赖性-“字段类型必须为输出类型,但得到:未定义。”

时间:2018-08-21 10:51:54

标签: node.js lambda graphql graphql-js

我一直在努力解决这个问题。我在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模块本身。据我所知,这应该不是循环依赖问题,尽管我尝试对其进行处理以防万一。任何帮助将不胜感激,因为这让我发疯。

0 个答案:

没有答案