node.js - Apollo-server-express 返回 "cannot Get/"而不是 Graphql playground

标签 node.js express graphql apollo-server

所以我从 apollo 文档教程 https://www.apollographql.com/docs/tutorial/introduction/ 获得了我的 server.js 和 schema.js 的代码

服务器.js

import apollo from "apollo-server-express";
const { ApolloServer } = apollo;
import express from "express";
import typeDefs from "./schema.js";

const app = express();
const server = new ApolloServer({
  typeDefs,
  playground: true,
});

server.applyMiddleware({ app });

const PORT = process.env.PORT || 4000;
app.listen(PORT, () => {
  console.log(`operating on port ${PORT}`);
})

架构.js

import pkg from "apollo-server-express"
const { gql } = pkg

// defining schema
 const typeDefs = gql`
  type Launch {
    id: ID!
    site: String
    mission: Mission
    rocket: Rocket
    isBooked: Boolean!
  }
  type Rocket {
    id: ID!
    name: String
    type: String
  }

  type User {
    id: ID!
    email: String!
    trips: [Launch]!
  }

  type Mission {
    name: String
    missionPatch(size: PatchSize): String
  }

  enum PatchSize {
    SMALL
    LARGE
  }
  type Query {
    launches: [Launch]!
    launch(id: ID!): Launch
    me: User
  }
  type Mutation {
    bookTrips(launchIds: [ID]!): TripUpdateResponse!
    cancelTrip(launchId: ID!): TripUpdateResponse!
    login(email: String): String # login token
  }
  type TripUpdateResponse {
    success: Boolean!
    message: String
    launches: [Launch]
  }
`
export default typeDefs

我做的唯一调整是选择 ES 模块导入/导出模块的方法,而不是文档中使用的 commonJS 方式,我认为这应该不是问题,它编译没有错误,但不是获取 graphql playground查看我的模式,我得到一个 cannot Get/

我还没有完成解析器,但在这一点上,我相信我应该已经看到了 playground 的运行情况。根据文档

最佳答案

使用applyMiddleware时,如果不显式指定路径,默认为/graphql

这意味着您将在 localhost:${PORT}/graphql 访问您的端点和 GraphQL Playground 界面,而不是 localhost:${PORT}(这是根据错误信息你在做什么)。

关于node.js - Apollo-server-express 返回 "cannot Get/"而不是 Graphql playground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63633577/

相关文章:

javascript - 如果在循环内抛出错误,则中断 promise 映射

javascript - Mocha chai-http 响应总是返回 null

node.js - Sequelize.js:一对多关系与自定义字段的热切加载

node.js - 使用 Redis 进行用户查找表

node.js - 自动同步本地 Github 存储库与服务器上的目录

javascript - Firebase 的 .once() 查询方法在被调用后不会停止监听

javascript - Mongoose:更新文档中的数组不起作用

django - 具有多对多和直通表的 Graphene-django

javascript - react + Apollo : GraphQL errors array not passed into component

java - 无法使用 graphql-spring 初始化代理