Node.js中的環境變量


有沒有辦法在Node.js代碼中讀取環境變量?

例如,例如Python的os.environ['HOME'] 。


#1樓

如果要使用在Node.js程序中生成的字符串鍵(例如var v = 'HOME' ,則可以使用process.env[v] 。

否則,必須在程序中對process.env.VARNAME進行硬編碼。


#2樓

使用Node.js時 ,可以通過鍵從process.env對象中檢索環境變量:

例如

  1.  
    var mode = process.env.NODE_ENV;
  2.  
    var apiKey = process.env.apiKey; // '42348901293989849243'

這是解釋在node.js中設置環境變量的答案


#3樓

process.env.ENV_VARIABLE 

其中ENV_VARIABLE是您要訪問的變量的名稱。

有關process.env請參見Node.js文檔 。


#4樓

您可以使用env包來管理每個項目的環境變量:

  • 在項目目錄下創建一個.env文件,並將所有變量放在此處。
  • 將此行添加到應用程序條目文件的頂部:
    require('dotenv').config();

做完了 現在,您可以使用process.env.ENV_NAME訪問環境變量。


#5樓

要在Node.JS中檢索環境變量,可以使用process.env.VARIABLE_NAME ,但不要忘記在process.env上分配屬性會將其隱式轉換為字符串。

避免布爾邏輯

即使您的.env文件定義了SHOULD_SEND = false或SHOULD_SEND = 0之類的變量,這些值也將轉換為字符串 (分別為“ false”和“ 0” ),並且不會解釋為布爾值。

  1.  
    if (process.env.SHOULD_SEND) {
  2.  
    mailer.send();
  3.  
    } else {
  4.  
    console.log("this won't be reached with values like false and 0");
  5.  
    }

相反,您應該進行顯式檢查。 我發現,取決於環境名稱會走很長一段路。

  1.  
    db.connect({
  2.  
    debug: process.env.NODE_ENV === 'development'
  3.  
    });

#6樓

為什么不在.bash_profile文件的Users目錄中使用它們,這樣就不必將任何帶有變量的文件推入生產環境了

 

注意:

有時候在/etc/profile加了環境變量,也source過了,但nodejs程序通過process.env.xxx 顯示undefined。這時候我們需要重啟服務器,重啟過后就找到了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM