GraphQL / Apollo:"没有可用的架构"。的NodeJS

时间:2018-05-06 10:30:31

标签: node.js graphql apollo graphiql

我正在尝试使用GraphQL / Apollo和我的"文档浏览器"无限加载并且不显示任何内容,我无法进行任何查询。

enter image description here

几分钟后,我得到一个typeError "Failed to fetch"

这是我的graphql/index.js文件:

const { graphqlExpress, graphiqlExpress } = require('apollo-server-express');
const { makeExecutableSchema } = require('graphql-tools');
const User = require('../models/user.model');

const typeDefs = `

  type Query {
    users: [User]
  }

  type User {
    id: ID!
    name: String
    email: String
    password: String
  }

`;

const resolvers = {
  Query: {
    users() {
      return User.find({});
    }
  }
}

const schema = makeExecutableSchema({
  typeDefs,
  resolvers,
});

module.exports = (app) => {
  app.use('/graphql', () => { }, graphqlExpress({ schema }));

  app.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql' }));
};

Console和DevTools都很清楚。有人可以解释,有什么不对吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您有点不清楚自己要完成什么,但是您已经在/graphql路由中添加了一个中间件,它什么都不做:

app.use('/graphql', () => { }, graphqlExpress({ schema }))

您插入的功能会随时响应/graphql路由而被调用,并且因为您的函数没有调用next或结束响应,所以下一个中间件({{ 1}})永远不会被调用,请求就会挂起。

另一个问题是graphqlExpress要求bodyParser中间件在被调用之前运行。这意味着您可以执行以下任一操作:

graphqlExpress

如果你没有包含bodyParser,graphqlExpress通常会抱怨并告诉你,只要你真正到达它的时间很长。