You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku部署Golang+MongoDB+React应用?git推送成功后报H10崩溃错误

错误根因定位

你遇到的H10报错属于Heroku平台的应用崩溃类错误,直接触发原因可以从运行日志直接定位:你的应用代码在启动时强制尝试读取本地.env文件,但Heroku的线上运行环境不存在该文件——你提前配置的Config Vars会直接注入到应用进程的系统环境变量中,不需要也不应该通过.env文件读取。

修复步骤

  • 调整Go项目的环境变量读取逻辑:新增环境判断,仅本地开发环境加载.env文件,线上环境直接从系统环境变量取值即可,示例逻辑参考:
import (
  "os"
  "log"
  "github.com/joho/godotenv"
)

func initEnv() {
  // 仅非生产环境加载本地.env文件
  if os.Getenv("GO_ENV") != "production" {
    if err := godotenv.Load(); err != nil {
      log.Fatalf("本地环境加载.env失败: %v", err)
    }
  }
}
  • 进入Heroku项目的Config Vars配置页,新增一条配置项:键为GO_ENV,值为production,触发线上环境的判断逻辑跳过.env加载。
  • 额外检查端口配置:Heroku会自动分配服务监听端口,你不能在代码里硬编码端口号,必须读取PORT环境变量作为服务监听端口,否则也会导致启动失败。
  • MongoDB对接说明:Heroku官方没有内置MongoDB插件,你可以使用MongoDB Atlas的免费托管集群,将完整的数据库连接字符串配置到Heroku的Config Vars中即可正常访问。

内容的提问来源于stack exchange,提问作者Adilson Jurado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:09:02