设置在GraphQL游乐场测试头,我想使用的原因“服务器无法到达”

问题描述 投票:0回答:1

所以,我创建了一堆突变和查询,并缝合在一起的作品,并希望引进认证进入组合。我添加了一个HTTP头“X-令牌”,以保持我的登录令牌能够删除喜欢自己的工作,或者用户本身的东西。

const getMe = async req => {
  const token = req.headers['x-token'];

  if (token) {
    try {
      return await jwt.verify(token, "notSoSecret");
    } catch (e) {
      throw new AuthenticationError(
        'Your session expired. Sign in again.',
      );
    }
    }
  };

  const server = new ApolloServer({
    typeDefs: schema,
    resolvers,
    formatError: error => {
      // remove the internal sequelize error message
      // leave only the important validation error
      const message = error.message
        .replace('SequelizeValidationError: ', '')
        .replace('Validation error: ', '');

      return {
        ...error,
        message,
      };
    },
    context: async ({ req }) => {
      const me = await getMe(req);

      return {
        models,
        me,
        secret: "notSoSecret",
      }
    },
    path: "/graphql"
  });

  server.applyMiddleware({ app });


  sequelize.sync().then(async () => {
     createUsersWithJob();
  });

  app.get("/playground", graphiql({ endpoint: "/graphql" }));
  const handler = serverless(app);
  export { handler };

  const createUsersWithJob = ... //creates seed data

所以,当我添加了标记,我看着我的命令行控制台,我居然看到我的设置,我想报头,但它循环一遍又一遍,并没有停止。此外操场得到一个错误“服务器无法到达”

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

和运行deleteUser突变不工作,或其他任何突变和查询此事,直到我删除,我在操场上设置的HTTP标头。

还有这里的一切在这根文件运行两次次要问题,但是,在目前所概括的标题问题,不是我的一样大。

如果任何人有任何深入了解这一点,我很想知道更多。提前致谢。

编辑:只是一个快速的编辑说,这时候我硬编码预先存在的用户正常工作。

node.js sequelize.js graphql apollo serverless
1个回答
3
投票

我有相当的斗争得到GraphQL游乐场的一个非常简单的HTML设置内工作做出反应的版本,但我想出来的东西,可能会帮助您以及(手指交叉)。

我在headers通话增添了GraphQLPlayground.init部分的配置,如下所示:

const root = document.getElementById('root');
GraphQLPlayground.init(root, {
  endpoint: "/graphql",
  headers: {
    "Authorization": "Bearer " + token
  }
})

我有,因为这一个id root的元素嵌入在HTML中。

不知道这会帮助你,虽然,因为我刚刚从你打电话graphiql这是一个不同的GraphQL客户比GraphQL游乐场您的代码示例注意到..

GraphIQL:https://github.com/skevy/graphiql-app GraphQL游乐场:https://github.com/prisma/graphql-playground

© www.soinside.com 2019 - 2024. All rights reserved.