graphql-compose 在解析方法中不接受我的参数

Posted

技术标签:

【中文标题】graphql-compose 在解析方法中不接受我的参数【英文标题】:graphql-compose doesn't accept my args in the resolve method 【发布时间】:2019-03-28 03:51:02 【问题描述】:

我遇到手动调用 Resolver.resolve 的问题

const createEntityGroupResolver = EntityGroupTC.getResolver('createOne')
const createEntityResolver = EntityTC.getResolver('createOne')

const entityGroupCreate = new Resolver(
    name: 'entityGroupCreate',
    type: createEntityGroupResolver.type,
    args: createEntityGroupResolver.args,
    resolve: async ( source, args, context, info ) => 
        const created = (await createEntityGroupResolver.resolve( source, args, context, info )).record
        console.log("created entityGroup : ", created, " from args: ", args)
        const newArgs = record:
                    name: args.record.name, entityGroupId:created._id
        args.record.entityGroupId=created._id
        console.log("creating entity from args works: ", args, " but with newArgs it fails: ", newArgs)
        await createEntityResolver.resolve(source, newAargs, context, info)
        return created
    
);

此代码引发以下错误:

从 args 创建实体作品: 记录:

名称:'fsgd1',

 fb: 'jgjhgf',

 web: 'kljh',

 city: 'jk',

 entityGroupId: 5bcf7ca2cd38080750b609f1    but with newArgs it fails:   record:  name: 'fsgd1', entityGroupId:

5bcf7ca2cd38080750b609f1

graphQl 错误:Entity.createOne 解析器至少需要 args.record 中的一个值(节点:1872) [DEP0079] 弃用警告:对象上的自定义检查功能 via .inspect() 已弃用

对于一个神秘的原因,传递一个修改后的 args 参数是可行的

    await createEntityResolver.resolve(source, args, context, info)
    return created

我注意到 args 是用换行符记录的,而 newArgs 是内联记录的,我不明白为什么

【问题讨论】:

【参考方案1】:

正如“Pavel Chertorogov”在this post 中回答的那样,问题是我缺少必须是 args 而不是 newArgs 的参数名称(因为我传递的是地图,而不是使用参数调用函数)

我必须这样纠正它: - 等待 createEntityResolver.resolve(source, newAargs, context, info) + await createEntityResolver.resolve(source, args: newArgs, context, info)

【讨论】:

以上是关于graphql-compose 在解析方法中不接受我的参数的主要内容,如果未能解决你的问题,请参考以下文章

正确声明 GraphQL Yoga 提供的 Prisma 字段但在解析器中不需要的方法

Docker在映像构建中不接受pyOBDC

加密/解密:HMAC 标签在解密方法中不匹配

Linq 扩展方法在 Visual Studio 2015 即时窗口中不可用

api 请求中不接受 REACT.js 变量

QT4 设计器在信号/槽编辑器中不接受“&”引用和“”空格字符