我正在尝试使用.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)
答案 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);