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

部署Node.js应用至Heroku时遭遇H10错误求助

解决Heroku部署Node.js应用时的H10错误

你的代码文件信息

index.js

import express from 'express'
import 'dotenv/config'
import router from './routes/index.js'
import morgan from 'morgan'

const app = express()

const port = process.env.PORT || 5000

app.use('/public', express.static('public'))

app.use(express.urlencoded({ extended: false }))

app.use(express.json())

app.use(morgan('dev'))

app.use('/', router)

app.listen(process.env.PORT || port)

Procfile

web: node index.js

package.json

{
  "name": "node-sso-example-app",
  "version": "1.0.0",
  "description": "Example Node.js SSO App using WorkOS",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js"
  },
  "author": "WorkOS",
  "dependencies": {
    "express": "^4.18.1",
    "ejs": "^3.1.8",
    "router": "^1.3.7",
    "dotenv": "^16.0.1",
    "@workos-inc/node": "^2.11.0",
    "morgan": "^1.10.0",
    "cookie-parser": "^1.4.6",
    "express-session": "^1.17.2",
    "http-errors": "~1.6.3"
  },
  "devDependencies": {
    "nodemon": "^2.0.19"
  },
  "engines": {
    "node": "^16.17.0"
  }
}

排查步骤

  • 修复端口监听逻辑并添加错误捕获
    你的端口监听代码逻辑冗余,且缺少错误回调,无法捕获启动失败的具体原因。修改为:

    const port = process.env.PORT || 5000;
    app.listen(port, (err) => {
      if (err) {
        console.error('服务器启动失败:', err);
        process.exit(1); // 明确退出进程,触发Heroku错误检测
      }
      console.log(`服务器运行在端口 ${port}`);
    });
    
  • 检查环境变量配置
    本地.env文件中的变量不会同步到Heroku,需要通过Heroku CLI手动设置所有必需的环境变量:

    heroku config:set KEY=VALUE
    

    确保WorkOS密钥等核心变量都已正确配置。

  • 验证文件提交状态
    确认public目录、routes/index.js等关键文件没有被.gitignore排除,已经提交到Git仓库。Heroku只会部署Git仓库中存在的文件。

  • 查看Heroku日志定位根因
    执行以下命令实时查看应用日志,这是找到H10错误具体原因的最有效方式:

    heroku logs --tail
    

    日志中会显示崩溃的详细信息,比如模块缺失、语法错误、未定义变量等。

  • 确认Node版本兼容性
    你的engines字段指定了Node版本^16.17.0,确保Heroku使用的Node版本符合要求。可以通过以下命令查看Heroku当前使用的版本:

    heroku run node -v
    

    如果版本不匹配,调整engines字段为Heroku支持的版本。

内容的提问来源于stack exchange,提问作者Will Dersh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:20:36