問題タブ [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.

0 投票する
1 に答える
1089 参照

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 変数名があるかどうかを知りたいです。

0 投票する
2 に答える
1650 参照

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ファイルで定義されています)

0 投票する
1 に答える
382 参照

node.js - dotenv パッケージをテストして、機密データが隠されていることを確認するにはどうすればよいですか?

dotenvパッケージは、機密データを外部から隠すために Node.js アプリで使用されます。

デプロイはとても簡単です。

ファイルにアクセスするための app.js 内のカスタム ディレクトリの設定.envも簡単です。

.env単純な名前/値のパターンでデータを保存します。

app.js からこのデータに簡単にアクセスできます。

質問:これが外部の世界からデータを隠していることをどのようにして知ることができますか? dotenv機密データが隠されていることを示すために、有効および無効にして実行できるテストは何ですか? それが機能していることを証明できるようにしたいと思います。