node.js - Foreman 多线 ENV 变量错误

标签 node.js environment-variables foreman

我正在尝试使用 \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/

相关文章:

ruby-on-rails - 使用Foreman时如何设置不同的环境变量用于测试和开发

javascript - 如何将 Node.js 缓冲区打印为二进制文件?

javascript - react native 。需要 .env 变量的路径

node.js - 在 Heroku NodeJS 服务器上运行 MochaJS 测试

javascript - 从 Cypress Fixture 访问环境变量

linux - 绝对和相对路径名 --> 堆栈中的环境变量

ruby-on-rails - 工头只显示 “started with pid #” 行,没有别的

javascript - jslint --edition=latest 意外的 ES6 功能。常量

javascript - NPM 包开发 - 如何在包安装后执行构建命令?

node.js - Firebase 托管设置问题