我正在学习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 中确切传递什么值才能使我的应用正常工作。
答案 0 :(得分:0)
按照建议的here启用动态元数据后,您应该能够通过process.env.HEROKU_APP_NAME
访问应用名称。端口号应通过process.env.PORT
可用。因此,您可以自己构建网址:
https://${process.env.HEROKU_APP_NAME}.herokuapp.com:${process.env.PORT}/graphql