在服务器启动时(node index.js
)我的GraphQL NodeJS服务器出现以下错误:
错误:Query.payment(data :)参数类型必须是输入类型但得到: function GraphQLObjectType(config){ _classCallCheck(this,GraphQLObjectType);
当我从字符串
更改原始args时发生此错误 args: {
data: { type: graphQL.GraphQLString }
},
对象类型:
args: {
data: { type: graphQL.GraphQLObjectType }
},
我需要一个对象类型,因为我需要将几个字段作为参数发送。
GraphQL服务器:
var Query = new graphQL.GraphQLObjectType({
name: 'Query',
fields: {
payment: {
type: graphQL.GraphQLString,
args: {
data: { type: graphQL.GraphQLObjectType }
},
resolve: function (_, args) {
// There will be more data here,
// but ultimately I want to return a string
return 'success!';
}
}
}
});
如何让它接受一个物体?
前端(如果需要。但错误发生在我发送之前):
var userQuery = encodeURIComponent('{ payment ( data: { user : "test" } )}');
$.get('http://localhost:4000/graphql?query=' + userQuery, function (res) {
//stuff
});
答案 0 :(得分:22)
如果您想使用Object作为参数,则应使用<TextView ...
android:text="@{collection.size() > 0 ? @plurals/plural_str(collection.size(), collection.size()) : @string/zero_str}"/>
而不是GraphQLInputObjectType
。请记住,GraphQL是基于强类型的,因此您不允许使用通用GraphQLObjectType
作为arg类型,然后动态查询args。您必须在此输入对象中明确定义所有可能的字段(并选择哪些字段是强制的,哪些不是强制字段)
尝试使用此方法:
GraphQLObjectType