【问题标题】:Node js GraphQL Root Mutation pass an arrayNode js GraphQL Root Mutation 传递一个数组
【发布时间】:2020-12-23 10:16:45
【问题描述】:

我有以下 rootmutation 函数,它接受线索数据作为参数的一部分。该功能运行良好。

const RootMutationType = new GraphQLObjectType({
    name: 'Mutation',
    description: 'Root Mutation',
    fields: () => ({
        addLead: {
            type: lead_obj,
            description: 'Add a lead',
            args: {
                fname: {type: GraphQLNonNull(GraphQLString)},
                sname: {type: GraphQLNonNull(GraphQLString)},
                mobileno: {type: GraphQLNonNull(GraphQLString)},
                call_time: {type: GraphQLNonNull(GraphQLString)},
                productIdentifier: {type: GraphQLNonNull(GraphQLString)},
                card_id: {type: GraphQLNonNull(GraphQLString)},
                country: {type: GraphQLNonNull(GraphQLString)}
            },
            resolve: (parent, args) => {
                const lead = {
                    id: leads.length + 1,
                    fname: args.fname,
                    sname: args.sname,
                    mobileno: args.mobileno,
                    call_time: args.call_time,
                    productIdentifier: args.productIdentifier,
                    card_id: args.card_id,
                    country: args.country
                }
                leads.push(lead)
                return lead
            }
        }
    })
})

但是,我想修改它,以便它可以通过以下方式允许 productidentifiercardid 的数组:

products: [{productidentifier: 'product_1', cardid:'card_1'}, {productidentifier: 'product_2', cardid:'card_2'}]

我在我的突变上尝试了以下参数,但它有效,但我不确定是否有任何其他更好的方法来处理这个:

products : {type: GraphQLNonNull(GraphQLString)},

以下是我推送数据的方式:

mutation{
  addLead(fname:"dsfd",sname:"sfd",mobileno:"gdfs",call_time:"6453" , productIdentifier:"453",
    ,products:"[{productidentifier: 'product_1', cardid:'card_1'}, {productidentifier: 'product_2', cardid:'card_2'}]" ,card_id:"3243", country:"US"){
    
    fname,
    sname,
    mobileno,
    call_time,
    card_id,
    country
    
  }
}

除了将数组作为字符串传递之外,还有更好的方法来处理突变中的数组帖子吗?

【问题讨论】:

  • 阅读有关 graphql 输入类型的信息

标签: node.js graphql


【解决方案1】:

请为产品定义另一个 GraphQLInputObjectType,其中包含 productidentifier 和 cardid 等字段。 您必须在突变的 args 对象中传递此字段,如下所示:

 products: {type: GraphQLNonNull(NewInputTypeName)},

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 2018-12-08
    • 2020-02-03
    • 2021-09-20
    • 1970-01-01
    • 2017-07-31
    • 2019-06-11
    • 1970-01-01
    相关资源
    最近更新 更多