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

如何将使用@nuxtjs/apollo模块的nuxt应用程序部署到heroku?,heroku,graphql,nuxt.js,apollo,apollo-client,Heroku,Graphql,Nuxt.js,Apollo,Apollo Client,我正在学习nuxtjs。我用它来构建一个todo应用程序,在后端(express)实现graphql来设置我的API。 当我想要实现apollo时,我发现我必须使用@nuxtjs/apollo模块,它在nuxt.config.js中有一系列选项可供设置,但只需要一个选项,所以我只是在我的nuxt.config.js文件中添加了以下代码: modules: ["@nuxtjs/apollo"], apollo: { clientConfigs: { default: { h

我正在学习nuxtjs。我用它来构建一个todo应用程序,在后端(express)实现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仪表板中我的应用程序日志中,我看到了以下行:
错误网络错误:请求http://localhost:3000/graphql 失败,原因:connect ECONREFUSSED 127.0.0.1:3000
所以我想我必须在numxt.config.js文件中更改httpEndpoint的值。
我还注意到,在heroku中,主机和端口会随着应用程序的每次重启而改变,因此我会得到一个uri,如下所示:
http://172.18.254.242:24570/

我知道我需要在我的numxt.config.js文件中更改httpEndpoint的值,但具体是什么值?我不知道

我在官方文档中搜索了很多,但没有找到任何解决方案,我也尝试了在google和stackoverflow上找到的所有解决方案,但没有任何运气


我想知道要让我的应用程序正常运行,我应该传入什么值。

按照建议启用dyno元数据后,您应该能够通过
process.env.HEROKU_app_name
访问应用程序名称。端口号应通过
process.env.port
提供。因此,您可以自己构建url:

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

按照建议启用dyno元数据后,您应该能够通过
process.env.HEROKU_app_name
访问应用程序名称。端口号应通过
process.env.port
提供。因此,您可以自己构建url:

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

在运行本文建议的命令后,我得到了以下响应:
为sleepy-include-14340启用运行时dyno元数据。。。完成
。我猜一切正常,所以我将代码中的值编辑为:
https://${process.env.HEROKU\u APP\u NAME}.herokuapp.com:${process.env.PORT}/graphql
。提交、推送和部署。该应用程序仍然无法运行,但我在浏览器控制台上获得以下信息:网络错误:不是有效的URL。。因此,由于某种原因,应用程序无法识别
process.env
变量。你知道怎么回事吗?我重新部署了应用程序,现在不知怎么的它部分修复了,控制台现在给我:
网络错误:https://sleepy-inlet-14340.herokuapp.com:undefined/graphql 不是有效的URL。
,因此现在它不会只重新确认端口变量。您可能能够。运行本文建议的命令后,我得到了以下响应:
为sleepy-include-14340启用运行时dyno元数据。。。完成
。我猜一切正常,所以我将代码中的值编辑为:
https://${process.env.HEROKU\u APP\u NAME}.herokuapp.com:${process.env.PORT}/graphql
。提交、推送和部署。该应用程序仍然无法运行,但我在浏览器控制台上获得以下信息:网络错误:不是有效的URL。。因此,由于某种原因,应用程序无法识别
process.env
变量。你知道怎么回事吗?我重新部署了应用程序,现在不知怎么的它部分修复了,控制台现在给我:
网络错误:https://sleepy-inlet-14340.herokuapp.com:undefined/graphql 不是有效的URL。
,因此现在它不会只重新确认端口变量。您可以。