[英]How to store an object in process.env variables
我在我的節點 js 中使用 firebase。 應用程序,我想將其 serviceAccountKey.json 文件存儲在 process.env 變量中。
我的 dotenv (.env) 文件中有這樣的東西
SERVICE_ACCOUNT_KEY={
"type": "anything",
"project_id": "anything",
"private_key_id": "anything",
"private_key": "anything",
"client_email": "anything",
"client_id": "anything",
"auth_uri": "anything",
"token_uri": "anything",
"auth_provider_x509_cert_url": "anything",
"client_x509_cert_url": "anything"
}
但是當我這樣做時,它說
服務帳戶必須是 object。
請幫我將此 object 存儲在 process.env 變量中。
您可以嘗試將 object 存儲為字符串,並在代碼中將其解析為 JSON。
.env :
MY_VAR='{"a":"valueA","b":"valueB"}'
然后在代碼中
應用程序.js :
let object = JSON.parse(process.env.MY_VAR);
編輯(感謝@Luca Galasso)修改了正確的 JSON 字符串。
在process.env
中存儲變量時,它會自動轉換為字符串。
鑒於此,如果您想在process.env
中設置一個變量,您可以在運行腳本時傳遞一個適當的字符串對象:
SERVICE_ACCOUNT_KEY='{"type":"anything"}' node script.js
或者您將 object 轉換為 script.js 文件中的字符串,例如:
process.env.SERVICE_ACCOUNT_KEY = JSON.parse(SERVICE_ACCOUNT_KEY)
在這兩種情況下,在從 process.env 讀取變量時,您應該將其轉換為 object:
SERVICE_ACCOUNT_KEY = JSON.parse(process.env.SERVICE_ACCOUNT_KEY)
由於您寫的錯誤說“......必須是 object。”,所以很可能缺少的部分是最后一步(從字符串解析到對象)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.