没有输入参数的Graphql突变不起作用
我创建了一个NestJS示例,添加了一个变种,将用户信息同步到后端 并添加了以下代码,@GqlUser将从我的jwt令牌中提取用户信息 @Mutationreturns=>UpdateUserResult @UseGuardsJwtAuthGuard updateUser@GqlUser用户:用户主体:可观察{ console.log'gql user:',user; const{userId,email,name}=user; 返回此.usersService.update{id:userId,email,name}.pipe mapb=>{ 成功:b, }, ; } 相关的GraphQL定义由NestJS生成,如下所示:没有输入参数的Graphql突变不起作用,graphql,nestjs,Graphql,Nestjs,我创建了一个NestJS示例,添加了一个变种,将用户信息同步到后端 并添加了以下代码,@GqlUser将从我的jwt令牌中提取用户信息 @Mutationreturns=>UpdateUserResult @UseGuardsJwtAuthGuard updateUser@GqlUser用户:用户主体:可观察{ console.log'gql user:',user; const{userId,email,name}=user; 返回此.usersService.update{id:userId
type Mutation {
//... other defs.
updateUser: UpdateUserResult!
}
type UpdateUserResult {
message: String!
success: Boolean!
}
// other defs.
但是当通过以下形式执行这种变异时
// failed due to *the expectedName is not a ")"*, it is a syntax error
mutation SyncUser{
updateUser(){//error
success
}
}
// or
mutation SyncUser(){ // error
updateUser(){
success
}
}
或
在GraphQLspec中,输入参数在变异定义中应该是可选的。您的变异名称是updateUser,因此您应该使用类似的名称:
mutation {
updateUser ()
{
success
}
}
考虑到在括号内,您需要传递操作所需的数据
无论如何,我建议使用GraphQL Playerd来找到正确的查询格式。我在Playerd中尝试过,并附上了一张图片。不知道是谁否决了这个。没有args=>没有括号,当然了。你也可以发布usersService.update的实现吗?
mutation {
updateUser ()
{
success
}
}