問題タブ [dotenv]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - process.env 変数が .env config と同じ値ではありません
最近の nodejs プロジェクトで、非常に奇妙なことがありました。HOSTNAME 変数を .env ファイルに設定しましたが、それが .js ファイルに含まれるまでに、HOSTNAME の値が .env の値と異なっていました。なぜですか?
--
状況
.env
サーバー.js
コンソール出力
予想されるコンソール出力
--
デバッグ
- Nodejs アプリケーションは、マシンの DNS エントリが foo.bar.com である Windows サーバー 2008 にインストールされます。イントラネットからは、" http://foo "としてマシンに到達することさえできます(何らかの理由で)。
- そのサーバー上で実行される他の nodejs アプリケーションはありません
- 問題はHOSTNAMEでのみ発生し、他の変数名は発生しません(少なくとも私が見つけた限りではありません)
- HOSTNAME=localhost の場合、完全に正常に動作し、サーバー ブラウザーからアプリケーションを実行します。
- HOSTNAME の名前を _HOSTNAME に変更すると、完全に正常に動作します (コード内のすべての HOSTNAME を置き換えます)。
- ローカル マシンでコードを実行し、.hosts エントリが「127.0.0.1 foo.bar.com」の場合、問題なく動作します。
名前を _HOSTNAME に変更することで問題を修正しましたが、なぜこれが起こったのか、また、この奇妙な出来事の影響を受ける可能性のある他の .env 変数名があるかどうかを知りたいです。
javascript - .env ファイル内のすべての変数を取得した後、bash またはシステムで定義されている場合、それらの変数の値を置き換える方法
nodejs プロジェクトの場合
- 次を
index.js
含むファイルがあります
- そして
.env
、次を含むファイルがあります
- そして、bashに行き、次のコマンドを実行します
ENVIRONMENT_VARIABLE
アプリを実行した後に取得する 値はb
(bashで定義されています)
しかし、webpack プロジェクトで
- 次を
index.js
含むファイルがあります
- そして
.env
、前のものと同じファイルがあります(nodejsプロジェクトにあります) - そして、私のwebpack構成は次のとおりです
- そして、bashに行き、次のコマンドを実行します
ENVIRONMENT_VARIABLE
アプリを実行した後に取得する 値はa
(.env
ファイルで定義されている)b
(bashで定義されている)ではありません
しかし、
ENVIRONMENT_VARIABLE
私が取得したい値はb
(bashで定義されている)a
(.env
ファイルで定義されている)ではありません。そしてENVIRONMENT_VARIABLE
、bashまたはシステムで定義されていない場合、取得したい値はa
(.env
ファイルで定義されています)
node.js - dotenv パッケージをテストして、機密データが隠されていることを確認するにはどうすればよいですか?
dotenvパッケージは、機密データを外部から隠すために Node.js アプリで使用されます。
デプロイはとても簡単です。
ファイルにアクセスするための app.js 内のカスタム ディレクトリの設定.env
も簡単です。
.env
単純な名前/値のパターンでデータを保存します。
app.js からこのデータに簡単にアクセスできます。
質問:これが外部の世界からデータを隠していることをどのようにして知ることができますか? dotenv
機密データが隠されていることを示すために、有効および無効にして実行できるテストは何ですか? それが機能していることを証明できるようにしたいと思います。