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

同一Node.js代码库部署两个Heroku Express应用方案咨询

部署共享代码库的两个Express应用到Heroku

这其实是Heroku上非常常见的场景,我来一步步给你拆解操作流程:

1. 创建两个独立的Heroku应用

首先得在Heroku平台上分别创建两个应用实体,你可以通过Heroku CLI或者网页控制台完成:

  • 用CLI的话,运行以下命令(把名称换成你自己的专属命名):
    heroku create my-app-primary
    heroku create my-app-secondary
    
    执行后Heroku会自动为每个应用分配唯一的访问域名。

2. 给本地Git仓库关联两个Heroku远程

因为你的代码托管在一个中央Git仓库,需要让这个仓库同时关联两个Heroku远程地址,这样就能分别推送代码到不同的应用:

  • 先查看当前已有的远程仓库:git remote -v
  • 添加第一个Heroku远程:
    git remote add heroku-primary https://git.heroku.com/my-app-primary.git
    
  • 添加第二个Heroku远程:
    git remote add heroku-secondary https://git.heroku.com/my-app-secondary.git
    
    再次运行git remote -v就能确认两个远程都已添加成功。

3. 为每个应用配置专属环境变量

这是区分两个应用的核心环节,你需要给每个Heroku应用设置独有的环境变量,用来触发代码里的差异逻辑:

  • 给第一个应用设置变量(示例):
    heroku config:set APP_ENV=production ENABLE_PAYMENT=true --app my-app-primary
    
  • 给第二个应用设置不同的变量:
    heroku config:set APP_ENV=staging ENABLE_PAYMENT=false --app my-app-secondary
    
    在你的Express代码里,直接通过process.env.APP_ENV、process.env.ENABLE_PAYMENT这类方式读取变量,就能实现分支逻辑了。

4. 分别推送代码到两个应用

当你更新代码后,只需要推送到对应的Heroku远程即可完成部署:

  • 部署到第一个应用(假设你的主分支是main,如果是master就替换成对应名称):
    git push heroku-primary main:main
    
  • 部署到第二个应用:
    git push heroku-secondary main:main
    

实用小贴士

  • 如果你本地用.env文件做开发测试,一定要把.env加入.gitignore,绝对不要提交到Git仓库,线上环境直接依赖Heroku的配置变量即可,避免敏感信息泄露。
  • 如果需要批量设置环境变量,可以把变量写入一个文本文件(比如env-prod.txt),然后用heroku config:push --file env-prod.txt --app my-app-primary一键导入。
  • 后续修改环境变量后,Heroku会自动重启应用让新配置生效,不需要额外操作。

这样操作下来,两个应用就共享同一代码库,通过环境变量实现差异逻辑,各自独立运行在Heroku平台上了。

内容的提问来源于stack exchange,提问作者Mike Miller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:48:00