我已经开始研究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);
}
}
})
})
我得到了这个错误。
基本上我需要从客户端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/