工头Multiline ENVvariables错误

我试图通过使用\n在我的.env文件.env我的pem文件的内容作为一个string传递给pem文件中的表单以便在ENVvariables中使用。 但是,这个问题是,我得到这个variables的错误,我不知道这是什么意思,但我看到有问题closures允许多行,所以我不知道为什么这个错误存在。

这里是我的terminal命令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) 

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

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

而且这很可能不起作用。 你为什么不把只是在环境variables的文件名? 就像是:

 CF_PRIVATE_KEY_FILENAME="my-file-id-rsa" 

当你启动应用程序时:

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