如何修复配置属性缺失导致的Heroku Application Error?
解决方案
- 检查
config库的环境变量映射配置:你使用的config库不会自动读取所有系统环境变量,需要在项目config/目录下的custom-environment-variables.json文件中添加mongoURI对应的环境变量映射,示例配置如下:
{ "mongoURI": "MONGO_URI" }
其中MONGO_URI需要和你在Heroku上设置的Config Vars的键名完全一致(大小写敏感)。
- 确认Heroku配置生效:在Heroku控制台添加Config Vars后,必须重启dyno才能让新的环境变量生效,你可以在Heroku控制台的更多操作里选择重启,也可以本地执行Heroku CLI命令
heroku restart完成重启。 - 检查配置文件的提交状态:确认你的
.gitignore文件没有忽略config/目录下的配置文件,尤其是custom-environment-variables.json、production.json这类线上环境需要的配置文件,如果被忽略会导致部署到Heroku的代码缺失配置规则,无法读取环境变量。 - 校验
NODE_ENV环境变量:config库会根据NODE_ENV的值读取对应配置文件,如果你在Heroku上设置了NODE_ENV为其他值,需要确保存在对应的配置文件或者配置了通用的环境变量映射规则。 - 临时排查方案:可以在
server.js第12行调用config.get('mongoURI')之前,添加日志打印console.log(process.env)和console.log(config),部署后查看Heroku运行日志,确认环境变量是否正常传入运行环境,以及config库的加载状态。
内容的提问来源于stack exchange,提问作者ApboAnselmo
相关产品推荐
相关产品推荐

