Node.js REST API部署到Heroku步骤咨询及访问报错求解
Node.js REST API Heroku部署教程及问题修复
现有部署错误根因
从提供的Heroku日志可以定位到两个核心错误:
npm ERR! missing script: start:Heroku默认使用npm start命令启动Node应用,你的项目package.json中未配置该启动脚本,导致进程启动失败- 端口硬编码:你在代码中将服务端口固定为5000,但Heroku会为web进程动态分配运行端口,必须读取系统环境变量
PORT才能正常监听请求
错误修复步骤
1. 修改端口监听逻辑
将你代码中最后的端口监听部分替换为以下内容:
const PORT = process.env.PORT || 5000; app.listen(PORT, function(){ console.log('App running on port ' + PORT); });
2. 配置package.json启动脚本
打开项目根目录下的package.json文件,添加/修改scripts字段:
{ "name": "你的项目名", "version": "1.0.0", "dependencies": { "express": "^版本号", "body-parser": "^版本号", "mysql": "^版本号" }, "scripts": { "start": "node 你的入口文件名.js" } }
注意:
- 请将
你的入口文件名.js替换为你实际的入口文件名称,比如app.js、index.js - 确保
express、body-parser、mysql依赖都写在dependencies字段下,不要放在devDependencies中,Heroku部署时不会安装开发依赖
完整Heroku部署分步教程
前置准备
- 已注册Heroku账号
- 本地已安装Node.js、Git、Heroku CLI
部署步骤
- 项目根目录初始化Git仓库:
git init - 项目根目录新建
.gitignore文件,添加以下内容:node_modules .env .DS_Store - 执行
heroku login,按提示完成Heroku账号登录 - 执行
heroku create 自定义应用名创建Heroku应用,应用名不能和现有Heroku应用重名 - 提交代码到本地Git仓库:
git add . git commit -m "部署准备完成" - 推送代码到Heroku远程仓库完成部署:
git push heroku main(如果本地主分支名为master则替换为master) - 部署完成后可执行
heroku open直接打开应用,也可以手动访问你的应用地址测试接口
额外注意事项
你当前使用的是外部MySQL数据库,需要确认MySQL数据库的访问权限已放开,允许Heroku的服务器IP访问,否则部署完成后访问/employees接口会出现数据库连接报错。
内容的提问来源于stack exchange,提问作者Blaq
相关产品推荐
相关产品推荐

