Graphql Can';t解决操场错误:变量\“$输入\";所需类型\“;会员输入\&引用;没有提供
我已经在这个问题上讨论了一个星期了,但在网上什么也解决不了。不返回任何数据对象,甚至不返回“null”。我正在从working REST CRUD应用程序转换为GraphQL。不像我想象的那么容易 我在操场上的经历: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
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
}
}