簡體   English   中英

如何在 process.env 變量中存儲 object

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

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