我有一个从中提取数据的数组。
festivals = ['bonnaroo', 'lollapalooza', 'coachella']
由于我使用的是 heroku,最好用环境变量替换它,但我不确定该怎么做。
使用 JSON 字符串作为环境变量是否可行?
原文由 paranoidhominid 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个从中提取数据的数组。
festivals = ['bonnaroo', 'lollapalooza', 'coachella']
由于我使用的是 heroku,最好用环境变量替换它,但我不确定该怎么做。
使用 JSON 字符串作为环境变量是否可行?
原文由 paranoidhominid 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的示例看起来更像是枚举而不是配置数组。我强烈建议使用模型来保存它。
如果您只是将上述数组作为示例引用,并且对如何将数组存储在 env 文件中更好奇 -
简短的回答: 你不能。
长答案: .env 变量是字符串 所以像
BOOLEAN = true
将被视为
BOOLEAN = "true"
等会
FESTIVALS = ['bonnaroo', 'lollapalooza', 'coachella']
被视为
FESTIVALS = "['bonnaroo', 'lollapalooza', 'coachella']"
解决方案:
您可以将数组保存为 .env 中的分隔字符串
FESTIVALS = "bonnaroo, lollapalooza, coachella"
在您的 js 文件中,您可以使用将其转换为数组
var festivals = process.env.FESTIVALS.split(", ");
结果将是
['bonnaroo', 'lollapalooza', 'coachella']
原文由 Abhishek 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
在这种情况下,环境变量听起来不像是可行的方法。
通常,您会希望使用环境变量来为您的应用程序提供有关其环境的信息或自定义其行为:要连接到哪个数据库、要使用哪些身份验证令牌、要分叉多少个工作进程、是否缓存呈现的视图,等等
你的例子看起来更像是一个模型,所以像数据库这样的东西可能更合适。
也就是说,没有关于您的应用程序做什么或它如何使用
festivals
的上下文,因此如果您确实应该使用环境变量,那么您有多种选择。最简单的可能是只使用空格或逗号分隔的字符串:然后:
披露:我是 Heroku 的 Node.js 平台所有者