类型为“ Mutation \”的字段“ forgotPassword \”上的“未知参数\“ email \”。

时间:2018-08-08 00:42:35

标签: javascript express graphql graphql-relay

我希望有一个端点“ forgotPassword”,其中输入是电子邮件,没有输出(操作的结果是发送给用户的电子邮件)。这看起来像是变异,而不是查询。我在前端使用graphqli,在后端使用带有节点的graphql-relay。到目前为止,我已经知道了:

import {
  fromGlobalId,
  connectionDefinitions,
  forwardConnectionArgs,
  connectionFromArraySlice,
  cursorToOffset,
  mutationWithClientMutationId,
  graphql,
} from 'graphql-relay'
import { GraphQLObjectType,
  GraphQLInputObjectType,
  GraphQLString, GraphQLNonNull, GraphQLID, GraphQLInt, GraphQLBoolean, } from 'graphql'


const forgotPassword = mutationWithClientMutationId({
  name: 'forgotPassword',
  inputFields: {
    email: { type: GraphQLString },
  },
  outputFields: {
    email: { type: GraphQLString },
  },
  mutateAndGetPayload: (arg1, arg2) => {
    console.log('+++ forgotPassword mutate and get payload:', arg1, arg2)
    return "status: ok"
  }
})

然后我得到: enter image description here

我在做什么错,如何解决此错误?另外,我应该使用什么来定义一个突变,是“ mutationWithClientMutationId”还是其他方法更可取?

我怎样才能使它没有返回值? (我目前正在退回电子邮件)

1 个答案:

答案 0 :(得分:0)

我的猜测是,参数email: $email应该包装在这样的输入对象中:

input: {
  email: $email
}

我个人不使用中继的突变辅助功能。