javascript - Apollo makeExecutableSchema 抛出错误 "Cannot read property ' 种“未定义”

标签 javascript graphql apollo apollo-server

我正在尝试使用 apollo 进行模式拼接,但每次使用 makeExecutableSchema 时都会出现错误。错误如下:

../node_modules/graphql-tools/dist/generate/concatenateTypeDefs.js:9:

-> if (typeDef.kind !== undefined)

TypeError: Cannot read property 'kind' of undefined

即使只是复制 Apollo 上的基本示例 website,我也重现了该问题。

const { ApolloServer, gql, makeExecutableSchema } = require("apollo-server");
const { addMockFunctionsToSchema, mergeSchemas } = require("graphql-tools");

const chirpSchema = makeExecutableSchema({
  typeDefs: `
      type Chirp {
        id: ID!
        text: String
        authorId: ID!
      }

      type Query {
        chirpById(id: ID!): Chirp
        chirpsByAuthorId(authorId: ID!): [Chirp]
      }
    `
});

addMockFunctionsToSchema({ schema: chirpSchema });

const authorSchema = makeExecutableSchema({
  typeDefs: `
      type User {
        id: ID!
        email: String
      }

      type Query {
        userById(id: ID!): User
      }
    `
});

addMockFunctionsToSchema({ schema: authorSchema });

const schema = mergeSchemas({
  schemas: [chirpSchema, authorSchema]
});

const server = new ApolloServer(schema);

server.listen().then(({ url }) => {
  console.log(`🚀 Server ready at ${url}`);
});

我做错了什么?但是我尝试使用 makeExecutableSchema 时总是遇到相同的错误。

最佳答案

据我所知,您正在使用 [email protected] 在这个版本中 ApolloServer构造函数接收一个选项参数

constructor(options)

您应该传递new ApolloServer({ schema: schema })而不是new ApolloServer(schema)

我尝试了你给出的例子,它成功了:)

关于javascript - Apollo makeExecutableSchema 抛出错误 "Cannot read property ' 种“未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51173778/

相关文章:

javascript - 如何在 JavaScript 中从插入符位置获取最后一个单词?

node.js - 我如何使用仅具有 Apollo Server 2 graphql 端点的快速中间件

typescript - 如何使用 jest 测试 Apollo Server 订阅?

javascript - Nuxt : choose client config other than default

graphql - 使用 `buildSchema` 时如何模块化 GraphQL 模式?

graphql - 将 Config.skip 与 React-Apollo 查询一起使用

javascript - 为什么 AngularJS 将 HTTP PUT 数据放在 URL 而不是 body 中?

javascript - 我应该如何嵌套这些异步调用?

javascript - 如何在javascript中确定计算机屏幕的分辨率?

c# - Dotnet 使用 graphQL 客户端,数据响应未映射