Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中将数组定义为环境变量_Javascript_Node.js_Heroku_Environment Variables_Env - Fatal编程技术网

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

Javascript 在node.js中将数组定义为环境变量,javascript,node.js,heroku,environment-variables,env,Javascript,Node.js,Heroku,Environment Variables,Env,我有一个从中提取数据的数组 festivals = ['bonnaroo', 'lollapalooza', 'coachella'] 因为我使用的是heroku,所以最好用一个环境变量替换它,但我不知道怎么做 是否使用JSON字符串作为环境变量?这可能取决于您的数据。例如,如果这些值都不包含逗号,您可以将其设置为逗号分隔的列表,然后用逗号拆分(例如,在myapp.js中使用FOO=bar、baz、qux节点myapp.js启动应用程序,然后执行var FOO=process.env.FOO.

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

festivals = ['bonnaroo', 'lollapalooza', 'coachella']
因为我使用的是heroku,所以最好用一个环境变量替换它,但我不知道怎么做


是否使用JSON字符串作为环境变量?这可能取决于您的数据。例如,如果这些值都不包含逗号,您可以将其设置为逗号分隔的列表,然后用逗号拆分(例如,在
myapp.js
中使用
FOO=bar、baz、qux节点myapp.js启动应用程序,然后执行
var FOO=process.env.FOO.split('、')


否则,如果您的输入值可能更复杂,那么JSON可能是最容易使用的方法。

在这种情况下,听起来不应该使用env变量

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

您的示例看起来更像一个模型,因此类似数据库的东西可能更适合

这就是说,你的应用程序做什么或者如何使用节日,都没有上下文,所以如果事实证明你应该使用env var,那么你有几个选择。最简单的方法可能只是使用空格或逗号分隔的字符串:

heroku config:set FESTIVALS="bonnaroo lollapalooza coachella"
然后:


披露:我是Heroku的Node.js平台所有者,您的示例看起来更像是一个枚举,而不是一个配置数组。我强烈建议使用模型来保存它

如果您只是引用上面的数组作为示例,并且更想知道如何将数组存储在env文件中-

简短答复: 你不能。

长答覆: .env变量是字符串 大概是

BOOLEAN = true
将被视为

BOOLEAN = "true"
FESTIVALS = "['bonnaroo', 'lollapalooza', 'coachella']"
也将如此

FESTIVALS = ['bonnaroo', 'lollapalooza', 'coachella'] 
被当作

BOOLEAN = "true"
FESTIVALS = "['bonnaroo', 'lollapalooza', 'coachella']"
解决方案:

可以将数组另存为.env中的分隔字符串

FESTIVALS = "bonnaroo, lollapalooza, coachella"
在js文件中,可以使用

var festivals = process.env.FESTIVALS.split(",");

最佳方法:使用JSON同意使用
而不是