我已经开始研究GraphQL。我的架构也包含一个列表项。

以下是我的架构的代码:

var userType = new graphql.GraphQLObjectType({
 name: 'user',
 fields: function () {
  return {
    _id: {
    type: graphql.GraphQLID
  },
  name: {
    type: graphql.GraphQLString
  },
  age: {
    type: graphql.GraphQLString
  },
  degrees:[
  {type:graphql.GraphQLList}
  ]
}
  }
   });

AND查询如下:
  var QueryType = new graphql.GraphQLObjectType({
  name: 'Query',
  fields: () => ({
    userArr: {
      type: new graphql.GraphQLList(userType),
      args:{
         degrees:{type:new graphql.GraphQLList(userType)}
      },
     resolve: function(source, args) {
        console.log(args);
        resolve(args);
      }
    }
})
})

我得到了这个错误。
node.js - 在GraphQL中将数组作为参数传递-LMLPHP

基本上我需要从客户端graphql查询中发布数组,并且必须相应地定义我无法实现的查询。
任何建议,因为我无法在此问题上找到任何帮助。

最佳答案

GraphQLObjectType不是有效的输入类型。

参见Mutations and Input Types

“输入类型不能具有其他对象的字段,只能是基本标量类型,列表类型和其他输入类型。”

您可以使用上面的建议,因为GraphQLString是标量

degrees:{
    type:new graphql.GraphQLList(graphql.GraphQLString)
}

否则,您将需要定义一个GraphQLInputObjectType
const userInputType = new GraphQLInputObjectType({
    name: 'userInput',
    fields: { /* put your fields here */ }
});
/* some code in between */

degrees:{
    type:new graphql.GraphQLList(userInputType)
}

关于node.js - 在GraphQL中将数组作为参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40626869/

10-16 13:09
查看更多