2016-10-08 14 views
1

.envファイルの文字列として私のpemファイルの内容を渡そうとしています。\nを使用して、ENV変数で使用されるpemファイルのフォームを翻訳しています。問題は、しかし、私はこの変数からエラーが発生していると私はそれが何を意味するか分からないが、issue closedが複数行を許可していた場所を見たので、なぜこのエラーが存在するのか分かりません。ここでフォアマンマルチラインENV変数エラー

ここに私のターミナルコマンド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) 

答えて

1

私はthiそれはそれのように動作することができます。ノードの幹部がファイルを行単位でスキャンしてキーと値のペアを作成しようとしているようですが、\ nなどの方法を意識していないようです。私はあなたがそれをもっと多くの行に置かなければならないとは思わない。

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

をし、動作しないことが十分に可能である:おそらくあなたはそのような何かを行うことができます。なぜあなたはファイル名だけをenvに入れませんか?以下のような何か:

CF_PRIVATE_KEY_FILENAME="my-file-id-rsa" 

と、アプリケーション起動:

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

私が探していた正確な答えでした。私の問題を解決していただきありがとうございます。 – cphill