首页 > 解决方案 > 导入 GraphQL 解析器和模式触发错误

问题描述

当我尝试使用以下配置运行服务器时,我收到一个错误:

错误:在解析器中定义了“createUser”,但具有无效值“function (userInput) {...解析器的值必须是对象类型。

索引.ts

const schema = loadSchemaSync(join(__dirname, './schema/**.graphql'), {
  loaders: [new GraphQLFileLoader()]
})

const schemaWithResolvers = addResolversToSchema({
  schema,
  resolvers: {
    ...UserResolvers
  }
})

.graphql 架构

# import User, UserInput from "User.graphql"

type RootQueries {
  user(id: String!): User
}

type RootMutations {
  createUser(userInput: UserInput): User
}

schema {
  query: RootQueries
  mutation: RootMutations
}

解析器

const UserResolvers = {
  async createUser(userInput: UserInput) {
    // some code
  }
}

export { UserResolvers }

标签: javascriptnode.jsexpressgraphql

解决方案


您可能正在寻找

const schemaWithResolvers = addResolversToSchema({
  schema,
  resolvers: {
    RootMutations: UserResolvers
  }
})

因为解析器通常按它们出现的类型分组。


推荐阅读