如何将Heroku配置变量设置为JSON值?

时间:2019-05-17 12:07:09

标签: json heroku environment-variables

我想将JSON值用作heroku config:set的环境变量。

但是如果我运行此命令:

heroku config:set FOO_JSON={"abc":"bcd","cde":"def" ... }

所有"都这样删除:

FOO_JSON={abc:bcd,cde:def ... }

,我得到一个解析错误。

如何在Heroku的环境变量中使用JSON?

2 个答案:

答案 0 :(得分:1)

Heroku 将删除第一个和最后一个 " 但这很好,我最近遇到了类似的问题。 当您在代码库中获取变量时,它将用字符串引号包装回来,以便您可以成功JSON.parse(process.env.VARIABLE)

示例。我在本地 .env

中列出了一些被禁止的用户
BANLIST = '["abdu","yak","jek","tosch","krek"]'

所以,我可以简单地设置

heroku config:set BANLIST='["abdu","yak","jek","tosch","krek"]'

heroku config:set BANLIST=["abdu","yak","jek","tosch","krek"]

两者都会导致 ["abdu","yak","jek","tosch","krek"]

因此,当您使用 JSON.parse(process.env.BANLIST) 取回它时,您将获得适当的数组输出。

警告:如果您使用 heroku GUI 界面设置用 '" 包装的配置变量,它根本不会设置,因此只需放置您的数组或对象 JSON,而不用其中任何一个包装那些

答案 1 :(得分:0)

这是因为您的外壳如何处理引号。将整个内容用单引号引起来:

heroku config:set FOO_JSON='{"abc":"bcd","cde":"def" ... }'