Postgraphile "Only `POST` requests are allowed." 错误

Postgraphile "Only `POST` requests are allowed." error

我在本地安装了 Postgres 运行ning。我可以使用 psql postgres:///reviewapp 在本地访问数据库,使用 \dt 我可以看到一些表。

如果我 运行 npx postgraphile -c "postgres:///reviewapp" 我在终端中没有收到任何错误:

PostGraphile v4.12.4 server listening on port 5000 

  ‣ GraphQL API:         http://localhost:5000/graphql
  ‣ GraphiQL GUI/IDE:    http://localhost:5000/graphiql (RECOMMENDATION: add '--enhance-graphiql')
  ‣ Postgres connection: postgres:///reviewapp
  ‣ Postgres schema(s):  public
  ‣ Documentation:       https://graphile.org/postgraphile/introduction/
  ‣ Node.js version:     v14.15.5 on darwin x64
  ‣ Join Mark in supporting PostGraphile development: https://graphile.org/sponsor/

* * *

但是当我转到 http://localhost:5000/graphql 时,屏幕上出现错误: {"errors":[{"message":"Only POST requests are allowed."}]}

这是因为当您在浏览器的地址栏中输入您的地址时,会发送一个 GET 请求,而您的 Postgraphile 实例只接受 POST 请求。所以这就是问题所在。您要么避免发送 GET 请求,要么尝试确保 Postraphile 也接受 GET 请求。

一个非常简单的解决方案是创建一个非常简单的小型网站作为代理,并在加载时向 http://localhost:5000/graphql[发送 POST 请求=11=]

有一张 GitHub 票据建议使用中间件,请阅读此以获取更多信息:https://github.com/graphile/postgraphile/issues/442

您正在访问使用 GraphQL 的 /graphql 端点(通过 POST 请求),但您正在向它发送 Web 请求(通过 GET)。相反,使用 /graphiql 端点来查看 GraphiQL GraphQL IDE - 这个端点使用 web,并且会给你一个很好的接口来与 /graphql 端点通信。请参阅 PostGraphile 命令的输出:

  ‣ GraphQL API:         http://localhost:5000/graphql
  ‣ GraphiQL GUI/IDE:    http://localhost:5000/graphiql (RECOMMENDATION: add '--enhance-graphiql')

我建议您将 --enhance-graphiql 选项添加到 PostGraphile CLI 以在浏览器中获得更强大的 IDE。