Graphql Can';t解决操场错误:变量\“$输入\";所需类型\“;会员输入\&引用;没有提供

Graphql Can';t解决操场错误:变量\“$输入\";所需类型\“;会员输入\&引用;没有提供,graphql,nestjs,Graphql,Nestjs,我已经在这个问题上讨论了一个星期了,但在网上什么也解决不了。不返回任何数据对象,甚至不返回“null”。我正在从working REST CRUD应用程序转换为GraphQL。不像我想象的那么容易 我在操场上的经历: mutation createMember($input: MemberInput!) { createMember (input: $input) { first_name last_name user_name

我已经在这个问题上讨论了一个星期了,但在网上什么也解决不了。不返回任何数据对象,甚至不返回“null”。我正在从working REST CRUD应用程序转换为GraphQL。不像我想象的那么容易

我在操场上的经历:

mutation createMember($input: MemberInput!) {
    createMember (input: $input) {
          first_name
          last_name
          user_name
    }
}
下面的查询变量:(不在标题部分。)

模式:(查询可以正常工作,成员类型(TypeORM中的一个实体)可以使用它们和完整的REST CRUD。)

我不知道解析程序如何成为此错误消息的问题,但我将添加Nestjs解析程序:

@Mutation('createMember')
  async createMember(@Args('input') input: MemberInput): Promise<Members> {
    console.log('input in resolver: ', input);
    return await this.membersService.addItem(input);
  }

解释起来有点复杂,但我们可能都在那里。我尝试了不同的“解决方案”,其中一个的剩余部分意外地留在了我的JSON数据对象中。完整对象的属性比我上面的简短对象多。JSON中的数组不应为“[]”。昨晚我累了,绝望了。我将解析器更改为上面发布的内容,但它没有解决问题,因为JSON中的实验导致了与以前相同的错误。所以我找错地方了。一旦我注意到并删除了引号,我的完整对象的数据就被发布到Postgres数据库

上面的代码有效


如果有更具体的GraphQL错误就好了。我怀疑这是一个非常普遍的,但这没有帮助。它没有表明最初的问题是在解析器中,后来我出现了数据输入错误。

解释起来有点复杂,但我们可能都在那里。我尝试了不同的“解决方案”,其中一个的剩余部分意外地留在了我的JSON数据对象中。完整对象的属性比我上面的简短对象多。JSON中的数组不应为“[]”。昨晚我累了,绝望了。我将解析器更改为上面发布的内容,但它没有解决问题,因为JSON中的实验导致了与以前相同的错误。所以我找错地方了。一旦我注意到并删除了引号,我的完整对象的数据就被发布到Postgres数据库

上面的代码有效


如果有更具体的GraphQL错误就好了。我怀疑这是一个非常普遍的,但这没有帮助。它没有表明最初的问题是在解析器中,后来我出现了数据输入错误。

我也有同样的问题,在变量中,我在最后一个参数的末尾有逗号。gql给了我同样的错误

更改此项:

{
    "input": {
        "param1": "val1",
        "param2": "val2",
    }
}
为此:

{
    "input": {
        "param1": "val1",
        "param2": "val2" // no comma here
    }
}

我也有同样的问题,在变量中,我在最后一个参数的末尾有逗号。gql给了我同样的错误

更改此项:

{
    "input": {
        "param1": "val1",
        "param2": "val2",
    }
}
为此:

{
    "input": {
        "param1": "val1",
        "param2": "val2" // no comma here
    }
}

这是一个请求验证错误,它的意思就是缺少变量
$input
。通过在浏览器的开发工具中打开“网络”选项卡并检查Playway向服务器发出的请求,可以双重检查变量是否已发送。如果您看到此错误,我可以保证请求正文中没有
input
变量。这听起来不像是胡闹,但您确定将变量放入了正确的文本字段中吗?我可以在“变量”和“HTTP头”之间切换,我打开的选项卡的唯一指示器是它的颜色是稍微浅一点的灰色。我以前把它们混在一起过。@DanielRearden是的。当我点击标题时,什么都没有。当我点击返回变量时,就会看到我的JSON。变量突出显示。有趣的是,如果JSON在其中任何一个中,我都会收到相同的消息。我不明白。可能是游乐场本身有一些奇怪的虫子。一时兴起,你能点击
copycurl
按钮并用生成的命令编辑你的问题吗?@DanielRearden我添加了它。希望您理解这个输出。为了简单起见,我的文章简要介绍了我的变异和输入。这显示了完整的对象。当我编辑掉大部分对象时,两者都有相同的错误。我已经删除了简要测试。这是一个请求验证错误,它的意思正是它所说的,变量
$input
丢失了。通过在浏览器的开发工具中打开“网络”选项卡并检查Playway向服务器发出的请求,可以双重检查变量是否已发送。如果您看到此错误,我可以保证请求正文中没有
input
变量。这听起来不像是胡闹,但您确定将变量放入了正确的文本字段中吗?我可以在“变量”和“HTTP头”之间切换,我打开的选项卡的唯一指示器是它的颜色是稍微浅一点的灰色。我以前把它们混在一起过。@DanielRearden是的。当我点击标题时,什么都没有。当我点击返回变量时,就会看到我的JSON。变量突出显示。有趣的是,如果JSON在其中任何一个中,我都会收到相同的消息。我不明白。可能是游乐场本身有一些奇怪的虫子。一时兴起,你能点击
copycurl
按钮并用生成的命令编辑你的问题吗?@DanielRearden我添加了它。希望您理解这个输出。为了简单起见,我的文章简要介绍了我的变异和输入。这显示了完整的对象。当我编辑掉大部分对象时,两者都有相同的错误。我已经删除了简要测试。是的,这是一个旧的JSON问题。天啊,这让我发疯了,而且很容易被忽视。操场应突出显示此语法错误。谢谢你,thxYep,这是一个老问题。天啊,这让我发疯了,而且很容易被忽视。操场应突出显示此语法错误。谢谢你,谢谢你
{
    "input": {
        "param1": "val1",
        "param2": "val2" // no comma here
    }
}