簡體   English   中英

我可以將對象存儲在 process.env 中嗎

[英]Can i store Objects in process.env

我將一個對象(具有多種方法)存儲到process.env中,如下所示:

var obj = createObject(); // returns new object
process.env.OBJ = obj;

當我從下面這樣的其他地方訪問這個對象時,我看不到任何方法。

var obj = process.env.OBJ;

顯示[Object Object]

這是為什么?

簡短的回答是:

不,您不能在process.env中存儲對象,因為它存儲了PATH, SHELL, TMPDIR等環境變量,這些變量由字符串值表示。 如果你運行命令console.log(process.env); 您可以查看系統的所有 env 變量,特別是您可以設置自己的 env 變量(例如process.env.home = 'home' ),這些變量將在您運行 nodejs 應用程序的過程中可用。

解決方案存在!
將 JSON 對象字符串化並保存為 env 變量。 然后在需要對象時解析並使用它

process.env 是存儲您的環境變量而不是真正存儲您的對象。 您可以像這樣存儲變量:

process.env['CONSUMER_KEY'] = ""
process.env['CONSUMER_SECRET'] = ""
process.env['ACCESS_TOKEN_KEY'] = ""
process.env['ACCESS_TOKEN_SECRET'] = ""

這是它的鏈接https://nodejs.org/api/process.html#process_process_env

如果您想存儲您的方法,您應該創建一個全局對象並將您的方法分配給該對象。

盡管您不能直接將對象存儲在process.env中,但您仍然可以將對象存儲在process本身中。

嘗試將對象字符串化並傳遞到 process.env 並解析字符串以獲取將起作用的對象。 例如。

var obj = createObject(); // returns new object

process.env.OBJ = JSON.stringify(obj);

let objFromEnv= JSON.parse(process.env.OBJ);這樣的代碼中使用它

暫無
暫無

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

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