错误:解析器中定义了“userResolver”,但架构中没有

Posted

技术标签:

【中文标题】错误:解析器中定义了“userResolver”,但架构中没有【英文标题】:Error: "userResolver" defined in resolvers, but not in schema 【发布时间】:2020-02-24 23:03:19 【问题描述】:

我在 graphQL 中的解析器有问题并收到此错误:

错误:“userResolver”在解析器中定义,但不在架构中

但是,我找不到错误。我已经在 Google 上搜索过,但目前没有找到任何解决方案。

我的要点: https://gist.github.com/peterklein/b063ee66871917cac120ae2ae263d002

有人能让我走上正轨吗?

【问题讨论】:

如果 ApolloServer 期望 resolvers 是一个对象,那么该对象上的每个属性应该是什么?您在server.js 中导入的resolvers 对象是否符合此要求? 【参考方案1】:

来自Modularizing resolvers docs

我们可以通过传递多个解析器对象并将它们与 Lodash 的合并或其他等效项组合在一起来实现与解析器相同的模块化

您需要合并您的userResolvertaskResolver

例如

server.js:

const  merge  = require('lodash');
const  ApolloServer  = require('apollo-server-express');
const resolvers = require('./resolvers');
const typeDefs = require('./typeDefs');

// ...
const apolloServer = new ApolloServer(
  typeDefs,
  resolvers: merge(resolvers.taskResolver, resolvers.userResolver),
);
// ...

现在,apollo 服务器工作正常。

$ node server.js
Server listen on port: 3000

【讨论】:

以上是关于错误:解析器中定义了“userResolver”,但架构中没有的主要内容,如果未能解决你的问题,请参考以下文章

NestJS 5 GraphQL 错误查询在解析器中定义,但不在模式中

Nestjs中多个graphql解析器实现的问题

ANT 构建:解析器中的变量:工件未定义

JDK XML解析器中的XXE防御

在 Graphene python 解析器中调用自定义方法

在aws appsync解析器中添加额外字段