首頁 > web前端 > js教程 > 從 JSON 到環境變數:介紹 json-to-env-converter

從 JSON 到環境變數:介紹 json-to-env-converter

Barbara Streisand
發布: 2025-01-02 17:54:39
原創
913 人瀏覽過

From JSON to Environment Variables: Introducing json-to-env-converter

您好!這是我的第一篇文章(所以請在評論中對我寬容一些?)。我很高興分享我一直在從事的一個小項目,該項目是出於個人需求。如果您曾經努力管理 Node.js 應用程式中的配置,您可能會發現這個小的零依賴套件很有趣。它被稱為 json-to-env-converter。

什麼是 json-to-env-converter?

json-to-env-converter 是一個 npm 套件,可將 JSON 物件轉換為環境變數。它是一個輕量級工具,旨在幫助您處理基於JSON 的配置,方法是將其轉換為環境變數並將其註入到process.env 中;它適用於配置可能是動態的、嵌套的或來源自我API 或外部系統的場景。

想法是這樣的:您可以透過程式設計方式從 JSON 物件載入它們並像任何其他環境變數一樣存取它們,而不是手動設定複雜或動態配置的環境變數。

我為什麼要建造它?

我最近為我個人正在從事的每個專案建立了一個秘密 API;我正在呼叫我的 Secrets api 以在運行時獲取以 json 格式提供的配置。更不用說在現代和大型應用程式中,配置可以根據用戶位置或其他動態因素而改變。雖然 .env 檔案非常適合靜態設置,但它們不容易處理:

  • 巢狀結構:將巢狀 JSON 扁平化到環境變數中可能會很乏味。
  • 動態來源:在執行時間載入配置而不重新啟動應用程式並不簡單。

我建立了json-to-env-converter 來再次探索解決這些問題的方法,它更多的是供個人使用的項目,它絕對不是為了取代像dotenv 這樣的工具,而是為了處理稍微不同的用例;我想將其開源並在npm 上公開發布有什麼壞處,如果有人發現使用它,我會很高興。

如何運作

從 npm 安裝軟體包:

npm i json-to-env-converter
登入後複製
登入後複製

這是一個簡單的例子來展示它的作用:

基本範例

import { jsonToEnv } from 'json-to-env-converter';

const config = {
  database: {
    host: 'localhost',
    port: 5432,
  },
};

jsonToEnv(config);

console.log(process.env.DATABASE_HOST); //Output: 'localhost'
console.log(process.env.DATABASE_PORT); //Output: '5432'
登入後複製
登入後複製

這需要一個 JSON 物件並將其轉換為環境變數。它還會展平巢狀鍵,因此database.host 成為DATABASE_HOST。

加上前綴

為了避免衝突,您可以加上前綴:

jsonToEnv(config, { prefix: 'MYAPP_' });

console.log(process.env.MYAPP_DATABASE_HOST); //Output: 'localhost'
登入後複製

用例:動態設定

此套件的一個潛在用例是處理動態配置。例如,假設您有一個全域應用程序,可以在運行時取得特定於區域的設定。您可以根據使用者的位置動態載入正確的設置,而不是手動管理每個區域的 .env 檔案:

npm i json-to-env-converter
登入後複製
登入後複製

這允許您的應用程式調整其配置,而無需重新啟動或硬編碼值。

你應該使用它嗎?

老實說,我仍在決定這個包的用途有多大。如果您已經熟悉 .env 檔案和靜態配置,則可能不需要此工具。但如果您正在使用:

  • 配置在運行時變更的動態環境
  • 需要轉換為平面環境變數的巢狀 JSON 物件
  • 來自 API 或外部服務的程式設定設定

並且對您目前的設定不滿意,那麼 json-to-env-converter 可能會節省您一些時間,值得一試。

安裝與回饋

如果您想嘗試一下,可以從 npm 安裝它:

import { jsonToEnv } from 'json-to-env-converter';

const config = {
  database: {
    host: 'localhost',
    port: 5432,
  },
};

jsonToEnv(config);

console.log(process.env.DATABASE_HOST); //Output: 'localhost'
console.log(process.env.DATABASE_PORT); //Output: '5432'
登入後複製
登入後複製

我很想聽聽您的想法、反饋或最重要的改進建議,因此請隨時在此處的評論中提及或在我的github 存儲庫上提交拉取請求https://github.com /neenus/json-to -env。這對我來說是一次學習經歷,我很高興看到它的發展方向。

哦,還有一件事...謝謝您閱讀我的第一篇文章!

以上是從 JSON 到環境變數:介紹 json-to-env-converter的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板