zeit-now v2 + apollo-server-express:操场错误:无法访问服务器

时间:2019-08-13 11:03:21

标签: express graphql apollo-server express-graphql zeit-now

当前,我正在尝试为我的nextjs项目工作提供一个api。 对于部署,我使用的是zeit的NOW v2(本地通过“ now dev”)。

除graphql-server之外,其他所有功能都正常运行。

在操场上和通过客户端,我收到404错误。 查询已正确执行,但出现错误对象(查询结果在响应字段中; 404)。

在parker-gui中检查它:同样的问题,并且在parker-input字段中显示消息“无法访问服务器”。

操场最初的错误:

{
  "error": "Response not successful: Received status code 404"
}

您好查询后的游乐场:

{
  "error": {
    "data": {
      "hello": "Hello world!"
    }
  }
}

浏览器控制台游乐场:

Error: "Response not successful: Received status code 404"

这是我现在加载的graphql服务器:

import express from 'express';
import { ApolloServer, gql } from 'apollo-server-express';

const typeDefs = gql`
    type Query {
        hello: String
    }
`;

const resolvers = {
    Query: {
        hello: () => 'Hello world!',
    },
};

const server = new ApolloServer({ typeDefs, resolvers,
                                    introspection: true, playground: true,
                                    subscriptions: {path: '/api'},
                                });

const app = express();
server.applyMiddleware({ app, path: "/api", cors: true });

module.exports = app;

还尝试了this示例。同样的问题。

谁能告诉我如何使其正常运行?

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题(无法访问服务器)。这是一个授权问题。 GraphQL Playground docs提到了request.credentials设置:

const server = new ApolloServer({
    typeDefs,
    resolvers,
    introspection: true,
    playground: {
      settings: {
        // So that auth works
        // Docs: https://github.com/prisma/graphql-playground
        ['request.credentials']: 'same-origin',
      },
    },
    subscriptions: {path: '/api'}
});