我使用golang开发了一个rest api,将存储库推送到了Heroku,还在互联网上托管了Mysql Server.Go rest api连接到Mysql Server并获取并插入数据。
heroku上的应用程序昨天运行良好。但是今天早上我在“ heroku logs --tail”上收到此错误:Web进程在启动后60秒内未能绑定到$ PORT
这是main.go的代码:
package main
import (
"os"
"github.com/mingrammer/go-todo-rest-api-example/app"
"github.com/mingrammer/go-todo-rest-api-example/config"
)
func main() {
config := config.GetConfig()
app := &app.App{}
app.Initialize(config)
port, ok := os.LookupEnv("PORT")
if ok == false {
port = "3000"
}
app.Run(":"+port)
}
答案 0 :(得分:0)
这是Heroku上的node.js应用程序的已知问题。
在极少数情况下,您的应用程序可能正在使用process.env.PORT,但仍可能无法绑定。这可能是由于应用程序试图在本地主机上进行绑定引起的。相反,您可能需要将其更改为0.0.0.0。
可以假设同样对于go服务也是一个问题。在Heroku support site 上查看这篇文章。
答案 1 :(得分:0)
我用
解决了os.Getenv(“ PORT”)
答案 2 :(得分:0)
您可以使用os.Getenv
。
这是修改后的main.go代码:
package main
import (
"os"
"github.com/mingrammer/go-todo-rest-api-example/app"
"github.com/mingrammer/go-todo-rest-api-example/config"
)
func main() {
config := config.GetConfig()
app := &app.App{}
app.Initialize(config)
port, err := os.Getenv("PORT")
if err != nil {
port = "3000"
}
app.Run(":"+port)
}