如何将使用@ nuxtjs / apollo模块的nuxt应用程序部署到heroku?

时间:2019-12-27 14:19:40

标签: heroku graphql nuxt.js apollo apollo-client

我正在学习nuxtjs。我用它来构建一个todo应用,在后端(快速)上实现graphql来设置我的API。 当我想实现apollo时,我发现必须使用@ nuxtjs / apollo模块,它在 nuxt.config.js 中设置了很多选项,但是只需要一个选项,所以我刚刚在我的 nuxt.config.js 文件中添加了以下代码:

modules: ["@nuxtjs/apollo"],
apollo: {
  clientConfigs: {
    default: {
      httpEndpoint: "http://localhost:3000/graphql"
    }
  }
},

在我的本地计算机上开发正常。当我尝试将其部署到heroku时,遇到了一些问题。

我发现api调用未正确完成,在heroku的信息中心的应用日志中,我看到以下行: Error Network error: request to http://localhost:3000/graphql failed, reason: connect ECONNREFUSED 127.0.0.1:3000 因此,我认为必须在 nuxt.config.js 文件中更改 httpEndpoint 的值。 我还注意到,在heroku中,主机和端口随应用程序的每次重新启动而发生变化,因此我将得到一个这样的uri:http://172.18.254.242:24570/

我知道我需要在我的 nuxt.config.js 文件中更改 httpEndpoint 的值,但究竟值多少?我不知道。

我在官方文档中进行了大量搜索,但没有找到任何解决方案,我还尝试了我可以在google和stackoverflow上找到的所有解决方案,但是没有任何运气。

我想知道我应该在 httpEndpoint 中确切传递什么值才能使我的应用正常工作。

1 个答案:

答案 0 :(得分:0)

按照建议的here启用动态元数据后,您应该能够通过process.env.HEROKU_APP_NAME访问应用名称。端口号应通过process.env.PORT可用。因此,您可以自己构建网址:

https://${process.env.HEROKU_APP_NAME}.herokuapp.com:${process.env.PORT}/graphql