在 node.js 中将数组定义为环境变量

新手上路,请多包涵

我有一个从中提取数据的数组。

 festivals = ['bonnaroo', 'lollapalooza', 'coachella']

由于我使用的是 heroku,最好用环境变量替换它,但我不确定该怎么做。

使用 JSON 字符串作为环境变量是否可行?

原文由 paranoidhominid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

在这种情况下,环境变量听起来不像是可行的方法。

通常,您会希望使用环境变量来为您的应用程序提供有关其环境的信息或自定义其行为:要连接到哪个数据库、要使用哪些身份验证令牌、要分叉多少个工作进程、是否缓存呈现的视图,等等

你的例子看起来更像是一个模型,所以像数据库这样的东西可能更合适。

也就是说,没有关于您的应用程序做什么或它如何使用 festivals 的上下文,因此如果您确实应该使用环境变量,那么您有多种选择。最简单的可能是只使用空格或逗号分隔的字符串:

 heroku config:set FESTIVALS="bonnaroo lollapalooza coachella"

然后:

 var festivals = process.env.FESTIVALS.split(' ');

披露:我是 Heroku 的 Node.js 平台所有者

原文由 hunterloftis 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题