[英]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.