Express(JS)后端GraphQL mutation函数无法获取请求变量问题排查
问题根因
你的代码错误是由GraphQL resolver参数顺序误用导致的。
GraphQL resolver 固定按顺序接收四个参数:parent(父级解析结果,根 resolver 该值为 undefined)、args(当前请求传递的所有变量)、context(全局上下文对象)、info(请求相关的元信息)。你的代码中直接从第一个参数解构name,自然就会触发「无法从 undefined 解构 name 属性」的报错。
修复方案
只需要修改resolvers.js中createOwner的参数,占位第一个不需要的parent参数,从第二个args参数中解构name即可,修改后代码如下:
const resolvers = { Mutation: { // 第一个参数用下划线占位表示无需使用,从第二个参数中取请求变量 createOwner: (_, {name}) => { console.log('createOwner name', name) return name } } }
修改完成后重启服务,即可正常拿到传递的createOwnerName参数值。
内容的提问来源于stack exchange,提问作者Serafim
相关产品推荐
相关产品推荐

