簡體   English   中英

process.env變量的值與.env配置中的值不同

[英]process.env variables not the same value as in .env config

在最近的nodejs項目中,發生了一個非常奇怪的事情:我在.env文件中設置了HOSTNAME變量,當它包含在.js文件中時,HOSTNAME值與.env中的值不同。 為什么

-

情況

.env

HOSTNAME=foo.bar.com

server.js

require('dotenv').config();
console.log("Hostname: ", process.env.HOSTNAME);

控制台輸出

Hostname: foo

預期的控制台輸出

Hostname: foo.bar.com

-

調試

  • Nodejs應用程序安裝在Windows Server 2008上,該計算機的DNS條目為foo.bar.com。 從Intranet,甚至可以通過“ http:// foo ”訪問該計算機(無論出於何種原因)。
  • 該服務器上沒有其他Node.js應用程序運行
  • 問題僅出現在HOSTNAME上,沒有其他變量名(至少在我所能找到的范圍內)
  • 如果HOSTNAME = localhost,並且我從服務器瀏覽器運行該應用程序,則工作正常
  • 如果我將HOSTNAME重命名為_HOSTNAME(並且替換了我代碼中所有出現的HOSTNAME),則可以正常工作
  • 如果我在本地計算機上運行代碼並且只有一個.hosts條目“ 127.0.0.1 foo.bar.com”,則可以正常工作

我已經通過重命名為_HOSTNAME來解決了該問題,但是我想知道為什么會這樣,以及是否還有其他.env變量名可能會受到這種奇怪情況的影響

dotenv npm庫會跳過已在主機環境中設置的變量。您可以在官方文檔中找到有關覆蓋現有系統變量的更多信息。

https://github.com/motdotla/dotenv#what-happens-to-environment-variables-that-已經設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM