工头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);