Heroku部署Node应用失败(使用process.env.PORT)求助
嘿,我仔细看了你的项目仓库和Heroku日志,一下子就找到问题啦!
核心问题:Procfile指向了不存在的文件
你的Procfile里写的启动命令是:
web: node server.js
但你的项目里根本没有server.js这个文件,实际的入口文件是index.js!Heroku按照Procfile的指令去找文件,找不到自然就启动失败了。
快速修复步骤
- 修改Procfile:把里面的内容改成指向正确的入口文件:
web: node index.js - 同步package.json的启动脚本(虽然Procfile会覆盖这个配置,但统一起来能避免本地和部署环境的混淆):
打开package.json,把scripts部分调整成这样:"scripts": { "start": "node index.js", "dev": "nodemon index.js" } - 重新部署:把修改后的Procfile和package.json提交到代码仓库,再推送到Heroku,应用就能正常启动了。
额外确认点(已经没问题的部分)
- 你的Express端口配置是对的:代码里用了
const PORT = process.env.PORT || 3000;,完美适配Heroku的环境变量要求,不用改。 - 项目依赖也没问题:
express已经在package.json里声明了,Heroku部署时会自动安装。
内容的提问来源于stack exchange,提问作者Guilherme
相关产品推荐
相关产品推荐

