微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:不知道如何处理这种类型的突变突变不遵循命名约定

如何解决错误:不知道如何处理这种类型的突变突变不遵循命名约定

我使用GRANDstack Starter模板项目,将apollo-server与neo4j结合使用。我有一个CreateParticipant突变(在schema.graphql中使用@cypher指令定义),我想将其重新用于新的突变。

传递到增强模式的简化解析器如下所示:

const resolvers = {
  Mutation: {
    UploadCSV: async (parent,{ file },context,info) => {
      // some data processing using file omitted
      const payload = { name: 'Just a name' }
      const result = resolvers.Mutation.CreateParticipant(
        parent,payload,info
      )
      return 'thanks StackOverflow'
    },},}

如下所示,在schema.graphql文件中定义了突变:

CreateParticipant(name: String!,id: ID = null): Participant
@cypher(
  statement: """
  CREATE (par:Participant {
    name: $name,id: coalesce($id,apoc.create.uuid())
  })
  RETURN par
  """
)

UploadCSV(file: Upload!): String

当我现在尝试通过前端上传文件时,阿波罗服务器在执行resolvers.Mutation.CreateParticipant(parent,info)时会引发错误。有效负载是突变期望的具有键/值对的对象。

抛出的错误是:

错误:不知道如何处理这种类型的突变。突变确实 不遵循命名约定。

我想知道是否传递未修改info是不起作用的原因。

解决方法

不要试图将变异称为另一个变异。而是拉出创建参与者逻辑并导入通用功能。这样,您就可以将上传的csv与创建参与者变量之间的关注点分开。

一些好的资源:

Nested Graphql Resolvers

Reusing Resolvers Conversation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。