Javascript 如何在GraphQL模式中使用中继连接进行变异

Javascript 如何在GraphQL模式中使用中继连接进行变异,javascript,graphql,relayjs,relay,graphql-js,Javascript,Graphql,Relayjs,Relay,Graphql Js,我试图在graphql模式中使用graphql中继连接定义,以便在我的变异调用中添加边和节点 我的项目上下文:我有一个自定义字段对象,我需要用下面的调用更新和显示它 const CustomFieldDefinition = new GraphQLInputObjectType({ name: 'CustomFieldDefinitions', fields: { schem: {

我试图在graphql模式中使用graphql中继连接定义,以便在我的变异调用中添加边和节点

我的项目上下文:我有一个自定义字段对象,我需要用下面的调用更新和显示它

    const CustomFieldDefinition = new GraphQLInputObjectType({
                name: 'CustomFieldDefinitions',
                fields: {
                    schem: {
                        type: GraphQLString
                    },
                    deleted: {
                        type: GraphQLBoolean
                    },
                    associatedEntityTypes: {
                        type: GraphQLString
                    },
                    name: {
                        type: GraphQLString
                    },
                    id: {
                        type: GraphQLID
                    }
                }
            })

    const { connectionType: Common_CustomFieldDefinitionConnection } =
            connectionDefinitions({
                   name: 'Common_CustomFieldDefinitionEdge',
                   nodeType: CustomFieldDefinition
        });

    const createCommon_CustomFieldDefinition = mutationWithClientMutationId({
        name: 'CreateCommon_CustomFieldDefinition',
        inputFields: {
            customFieldDefinition: {type: Common_CustomFieldDefinitionConnection},
            clientMutationId: {type: GraphQLString}
        },
        outputFields: {
            customFieldDefinition: {
                type: CustomFieldDefinition,
                resolve: (obj) => {
                    return (obj.customFieldDefinitions[obj.customFieldDefinitions.length-1])
                }
            }
        },
        mutateAndGetPayload: (params) => {
            return Promise.resolve(
                updateCustomField(params)   // Think of it as a method which update all custom fields.
            );
        }
    });

    const Mutation = new GraphQLObjectType({
            name: 'Mutation',
            fields: {
                createCommon_CustomFieldDefinition: createCommon_CustomFieldDefinition
            }
        });

    const mySchema = new GraphQLSchema({
        mutation: Mutation
    });

    module.exports = mySchema;
这就是我正在努力实现的突变呼叫

mutation {
  createCommon_CustomFieldDefinition(input:{
    clientMutationId: "1442",
    commonCustomFieldDefinition: {
         name: "Vamsi_date",
         schem: "Anything",
         associatedEntityTypes :"CUSTOMER"
    }
 }) {
    clientMutationId
    commonCustomFieldDefinitionEdge{
      node{
        name
        id
        schem
       }
    }
  }
}
我在这里面临的问题是,每当我启动服务器时,都会出现错误

Error: CustomFieldDefinition.customFieldDefinitions field type must be Input Type but got: Common_CustomFieldDefinitionEdgeConnection.
我如何解决这个问题?我想我在下面的代码中做错了什么

const { connectionType: Common_CustomFieldDefinitionConnection } =
            connectionDefinitions({
                   name: 'Common_CustomFieldDefinitionEdge',
                   nodeType: CustomFieldDefinition
        }); 

我猜inputFields不能是customType不,它可以是customType,我过去也尝试过,我猜graphql中是,但我猜graphql中继器中不是,输入字段的连接
节点
。真的吗???@p0k8_u我刚刚编辑了qn上面的突变调用。因此,根据突变调用,我希望commonCustomFieldDefinitionEdge与node一起使用,我们不需要中继连接吗?好的,想象一下,您的
输入字段
=
参数
如何查看
突变dGetPayload:(params)
,只需将预期对象放入
参数中即可