我正在尝试使用 \n
将 pem 文件的内容作为字符串传递到 .env
文件中,以转换要使用的 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)
最佳答案
我不认为它可以那样工作。 Node 工头似乎逐行扫描文件,并尝试创建键值对,并且似乎不知道\n 或其他可以分割行的方法。不过,我认为您不必将其放在更多行中。也许你可以做这样的事情:
CF_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAm7NA57......\n...."
这很可能行不通。为什么不只将文件名放入环境变量中?类似于:
CF_PRIVATE_KEY_FILENAME="my-file-id-rsa"
当您启动应用程序时:
var id_rsa_contents = fs.readFileSync(__dirname + proces.env.CF_PRIVATE_KEY_FILENAME);
关于node.js - Foreman 多线 ENV 变量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39935981/