Foreman多线ENV变量误差

时间:2016-10-08 18:38:09

标签: node.js environment-variables foreman

我正在尝试使用.env将我的pem文件的内容作为字符串传递到我的\n文件中,以转换pem文件中用于ENV变量的表单。然而,问题是我从这个变量中得到一个错误而且我不确定它是什么意思,但我看到哪里有issue closed允许多行,所以我不确定为什么会出现这个错误存在。

这是我的终端命令nf run nodemon app.js

以下是版本1.4.1

以下是我的.env文件中我的pem文件集的格式:

CF_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n
MIIEpAIBAAKCAQEAm7NA5731034RiKsEkuBTrkoBidwFD7hsdfaiohdsfahsdfL99Iw5R4uTA\n
jpPJTOUHTJNMSNF472h42ofnlNflnriNBTPOHNJFRPNSRPFNSRpfPRNFORNFPRSNFpSNFFPNf\n
-----END RSA PRIVATE KEY-----"

这是错误消息:

/Users/user/.nvm/versions/node/v4.3.2/lib/node_modules/foreman/lib/envs.js:38
      case '"': return /^"([^"]*)"/.exec(val)[1];
                                             ^

TypeError: Cannot read property '1' of null
    at parseValue (/Users/user/.nvm/versions/node/v4.3.2/lib/node_modules/foreman/lib/envs.js:38:46)

1 个答案:

答案 0 :(得分:1)

我认为它不能像那样工作。似乎节点工头逐行扫描文件,并且它正在尝试创建键值对,并且似乎不知道\ n或其他可以分割线的方法。不过,我不认为你必须把它放在更多的线上。可能你可以这样做:

CF_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAm7NA57......\n...."

很有可能无效。你为什么不把文件名放在env vars中?类似的东西:

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa"

当你启动应用程序时:

var id_rsa_contents = fs.readFileSync(__dirname + proces.env.CF_PRIVATE_KEY_FILENAME);