在Heroku启动Node.js服务器时如何传参及安全配置Token
问题1:如何在启动部署于Heroku的Node.js服务器时传递参数?
这里有两种实用的方案,你可以根据需求选择:
直接修改Procfile
Heroku依赖Procfile定义应用的启动命令,所以你可以直接在里面追加参数。比如原本的Procfile是:web: node server.js如果要传递端口和环境类型参数,直接改成:
web: node server.js --port 3000 --env production把修改后的Procfile提交到关联的GitHub仓库,Heroku下次部署时就会用这个带参数的命令启动服务器。
用环境变量动态传递参数
要是参数需要灵活调整,不想硬编码在Procfile里,就用Heroku的环境变量来实现:- 先通过Heroku CLI设置环境变量:
或者在Heroku网页控制台的「Settings」标签页里添加Config Vars,键设为heroku config:set SERVER_ARGS="--port 3000 --env production"SERVER_ARGS,值填你要传递的参数。 - 接着修改Procfile引用这个环境变量:
这样启动时Heroku会自动把环境变量里的参数注入命令,后续改参数只需要更新环境变量,不用动Procfile。web: node server.js $SERVER_ARGS
- 先通过Heroku CLI设置环境变量:
问题2:关联GitHub仓库部署Node.js到Heroku,如何安全添加Token不提交到GitHub?
绝对别把Token硬编码进代码,也别提交包含Token的文件到GitHub!最安全的做法是用Heroku的Config Vars(环境变量)——这些变量只存在于Heroku的服务器环境中,不会出现在你的代码仓库里。
具体操作分两种方式:
通过Heroku网页控制台设置
- 打开你的Heroku应用,切换到「Settings」标签页
- 找到「Config Vars」区域,点击「Reveal Config Vars」
- 在输入框里,Key填你要在代码中引用的名称(比如
API_TOKEN),Value填你的Token内容,点击「Add」就完成了。
通过Heroku CLI命令设置
- 打开终端,先登录Heroku:
heroku login - 切换到你的项目目录(或者执行命令时加上
--app 你的应用名称指定目标应用) - 执行命令添加Token:
heroku config:set API_TOKEN="你的私密Token内容" - 想要确认是否设置成功,可以执行
heroku config查看所有已配置的环境变量。
- 打开终端,先登录Heroku:
之后在你的Node.js代码里,直接通过process.env.API_TOKEN就能获取到这个Token。另外,如果你本地开发也需要用这个Token,可以在项目根目录创建.env文件写入Token,然后把.env添加到.gitignore里——这样本地能正常使用,又不会把Token提交到GitHub。
内容的提问来源于stack exchange,提问作者Serje Strelov
相关产品推荐
相关产品推荐

