最近の nodejs プロジェクトで、非常に奇妙なことがありました。HOSTNAME 変数を .env ファイルに設定しましたが、それが .js ファイルに含まれるまでに、HOSTNAME の値が .env の値と異なっていました。なぜですか?
--
状況
.env
HOSTNAME=foo.bar.com
サーバー.js
require('dotenv').config();
console.log("Hostname: ", process.env.HOSTNAME);
コンソール出力
Hostname: foo
予想されるコンソール出力
Hostname: foo.bar.com
--
デバッグ
- 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 変数名があるかどうかを知りたいです。