簡體   English   中英

將 Apollo Express 服務器部署到 Heroku 時出現問題:“缺少 GET 查詢。”

[英]Problem deploying Apollo Express server to Heroku: "GET query missing."

我使用 Apollo Express 編寫了一個簡單的 GraphQL 服務器並將其部署到 Heroku。 在對 Procfiles 之類的東西進行了一些弄亂之后,它構建好了。

當我點擊主 URL https://limitless-atoll-59109.herokuapp.com 時出現錯誤

不能獲取 /

好的,然后我認為 Express 服務器肯定只是在尋找 graphql 端點上的 get。 但是當我點擊https://limitless-atoll-59109.herokuapp.com/graphql我得到

缺少 GET 查詢。

我需要在 url 中包含一個端口嗎? 我在代碼中正確設置了端口

const PORT = process.env.PORT || 4000

  app.listen({port: PORT}, () =>

  console.log(`Server ready at http://localhost:${PORT}${server.graphqlPath}`)
  );

但是我認為在訪問 Heroku 上的服務器時不需要包含它,是嗎?

值得一提的是,這是錯誤日志中的錯誤

019-05-08T17:07:41.492327+00:00 heroku[router]: at=info method=GET path="/graphql" host=limitless-atoll-59109.herokuapp.com request_id=b6171835-aac4-4b45-8a7b -daebbb3167ed fwd="139.47.21.74" dyno=web.1 connect=0ms service=900ms status=400 bytes=196 protocol=https

謝謝你的幫助!

答案是,它URL,在兩端/graphql一個欲望。 但是,當您從瀏覽器點擊該 url 時,它會嘗試加載 Playground,但失敗了,因為 Playground 在生產環境中默認是禁用的。

但是,您可以從客戶端應用程序對該 url 進行 graphql 調用,並且它工作正常。

如果您使用的是 apollo 服務器,您可以在生產中啟用它:

const server = new ApolloServer({
  typeDefs,
  resolvers,
  introspection: true,
  playground: true,
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM