node.js - 字符串列表的变异变量 "$_v0_data"得到无效值 Graphql Node.js

标签 node.js express graphql graphql-js prisma

我有这个简单的突变,效果很好

    type Mutation {
    addJob(
        url: String!
        description: String!
        position: String!
        company: String!
        date: DateTime!
        tags: [String!]!
    ): Job
}

突变解析器

    function addJob(parent, args, context, info) {

    console.log('Tags => ', args.tags)
    // const userId = getUserId(context)
    return context.db.mutation.createJob(
        {
            data: {
                position: args.position,
                componay: args.company,
                date: args.date,
                url: args.url,
                description: args.description,
                tags: args.tags
            }
        },
        info
    )
}

但是,一旦我尝试像上面看到的那样放置一个字符串数组(标签),我就无法正常工作,并且出现了这个错误

Error: Variable "$_v0_data" got invalid value { ... , tags: ["devops", "aws"] }; Field "0" is not defined by type JobCreatetagsInput at value.tags.

如果我在 mutation 中为标签分配一个空数组就没有问题,但是如果我输入一个字符串值 ["DevOps"] 例如我会得到错误

最佳答案

我发现问题显然出在解析器函数中 here我必须在 set 参数中的对象内分配标签列表,如下面的代码

function addJob(parent, args, context, info) {
    return context.db.mutation.createJob(
        {
            data: {
                position: args.position,
                componay: args.company,
                date: args.date,
                url: args.url,
                description: args.description,
                tags: { set: args.tags }
            }
        },
        info
    )
}

关于node.js - 字符串列表的变异变量 "$_v0_data"得到无效值 Graphql Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53143743/

相关文章:

javascript - 通过 mailjet 发送电子邮件,无需后端

javascript - JSON 中位置 0 处的意外标记 u 不适用于异步

javascript - NodeJS 路由器使用另一个调用请求的函数不等待应答

javascript - 如何获取使用 NodeJS 给出的两个特定日期之间的天数、周数和月数?

javascript - 使用 Passport JS 给出错误的请求

node.js - NodeJS 因多个请求而崩溃

node.js - Express 4.0 中合并路线

graphql - 如何将嵌套变量传递给 Apollo 中的 GraphQL 查询?

asp.net-core - 如何控制 HotChocolate 中枚举值的序列化?

graphql - 不变违规 : Expecting a parsed GraphQL document