部署Node.js应用到Heroku报H10错误,已设置process.env.PORT仍未解决
Heroku Node.js 部署 H10 错误排查点
- Procfile 语法错误
你当前的Procfile写法为web : node app.js,冒号前额外的空格不符合Heroku Procfile语法规范,会导致平台无法正确识别web启动进程,直接触发启动崩溃。正确写法如下:web: node app.js - 环境变量配置缺失
代码中使用process.env.MONGO_STRING作为数据库连接串,若未在Heroku平台配置对应环境变量,会导致数据库连接失败,服务无法正常启动。需要进入Heroku应用后台的「Settings」页面,找到「Config Vars」板块,添加MONGO_STRING配置项,取值与本地测试可用的数据库连接串保持一致。同时需确认MongoDB服务已开放Heroku节点的IP访问权限,避免连接被拦截。 - 依赖问题
检查package.json的dependencies字段,确认所有代码用到的依赖(如express、mongoose等)都已加入生产依赖列表,没有误放到devDependencies中:Heroku部署默认不会安装开发依赖,会导致依赖导入失败引发崩溃。同时确认标注的Node.js 14.x版本与本地开发使用的版本一致,避免高版本Node兼容的语法在14.x环境中运行报错。 - 日志定位具体错误
上述修改完成后若问题仍存在,可安装Heroku CLI后执行heroku logs --tail命令,查看服务启动的完整运行日志,定位具体报错原因(如语法错误、第三方服务连接失败等),相比H10通用报错能更快定位问题。
内容的提问来源于stack exchange,提问作者Tommy
相关产品推荐
相关产品推荐

