1

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

4

1 に答える 1