megtalálom a külön csomópont létrehozásának gyakorlatát.js config fájlok kezelésére config változók különböző környezetekben (fejlesztés, tesztelés, staging és a termelés) nehézkes.
tehát egy olyan megoldással végeztem, amely egyetlen csomóponttal kezeli az összes környezet konfigurációs változóit.js konfigurációs fájl.
először hozzunk létre konfigurációt.json a root / config mappában, mint az alábbiakban. Az ötlet az, hogy a fejlesztés az alapértelmezett környezet, amely tartalmazza az összes konfigurációs változót. Csak akkor ismételheti meg a konfigurációs változókat más környezetekben, ha felül kívánja bírálni az alapértelmezett fejlesztői környezetben található alapértelmezett konfigurációs változó értékeket.
mint látható, a tesztelési, átmeneti és termelési környezetek mind felülírják a config_id és az adatbázis konfigurációs változóit. Az átmeneti és termelési környezetek felülírják a node_port konfigurációs változót is.
ezután írjunk néhány kódot a tényleges logika megvalósításához. Config létrehozása.js a root / config mappában, mint az alábbiakban. Ez a kód:
- beolvassa a root/config-ban található JSON-t.json fájl.
- beállítja az alapértelmezett konfigurációt a config-ben található fejlesztési csomópontra.json.
- Beállítja a környezeti konfigurációt a megfelelő környezeti csomópontra, amely megtalálható a konfigurációban.json a node_env környezeti változó értékén alapul(amely maga alapértelmezés szerint a fejlesztés, ha null).
- a lodash egyesítési metódusának meghívásával beállítja a végső konfigurációt az alapértelmezett és a környezeti konfiguráció egyesüléséhez.
- Beállítja a gconfig globális változót a végső konfiguráció értékével.
- naplózza a gConfig értékét.
végül hozzunk létre root / szervert.js, hogy tesztelje mindezt egy böngészőben. Az alábbi kód magától értetődő. Tesztelje a node_env környezeti változó különböző értékeinek beállításával.
és itt van néhány screenshotok tesztelés beállításával a node_env környezeti változó szerver.js a fejlesztéshez és a staginghez. Láthatja, hogy az átmeneti környezetben az app_name, az app_desc és a json_indentation értékei nem változnak, és a fejlesztői környezetből kerülnek felvételre, ahol a config_id, a node_port és az adatbázis értékei felül vannak írva.
lehet klón / letöltés fenti kódot Az én GitHub repository itt.
bónuszként semmi sem akadályozza meg a titkokat, például az API kulcsokat vagy a jelszavakat a konfigurációban.json. Egyszerűen titkosítsa nyugalmi állapotban, mielőtt a forrástárba nyomná egy olyan vállalati szintű titkosítási megoldás segítségével, mint a Google Cloud Platform Cloud Key Management Service (KMS). És visszafejteni után minden telepítési segítségével a kedvenc CI / CD eszköz.
nézze meg blogbejegyzésemet a Google Cloud Platform Cloud Key Management Service (kms) használatával a titkok titkosításához / visszafejtéséhez további információkért.
Boldog Kódolást!