uzel.js Osvědčených Postupů – Chytřejší způsob, jak Spravovat Konfigurační Soubory a Proměnné

Mar 24, 2018 · 3 min read

najít praxi vytváří samostatný Uzel.JS konfigurační soubory pro správu konfiguračních proměnných pro různá prostředí (vývoj, testování, staging a výroba) těžkopádné.

tak jsem skončil s řešením, které spravuje konfigurační proměnné pro všechna prostředí s jedním uzlem.JS konfigurační soubor.

nejprve vytvoříme konfiguraci.json ve složce root / config jako níže. Myšlenka je vývoj je výchozí prostředí a obsahuje všechny konfigurační proměnné. Proměnné config opakujete pouze v jiných prostředích, pokud chcete přepsat výchozí hodnoty proměnné config nalezené ve výchozím vývojovém prostředí.

takže jak můžete vidět, testování, staging a výrobní prostředí všechny přepsat config_id a databáze config proměnné. A pracovní a produkční prostředí také přepíše konfigurační proměnnou node_port.

dále napíšeme nějaký kód, abychom implementovali skutečnou logiku. Vytvořit config.js ve složce root / config jako níže. Tento kód:

  1. čte JSON nalezený v kořenovém adresáři / config.soubor json.
  2. nastaví výchozí config na vývojový uzel nalezený v config.json.
  3. nastaví config prostředí na odpovídající uzel prostředí nalezený v config.json na základě hodnoty proměnné prostředí NODE_ENV (která sama o sobě má výchozí hodnotu pro vývoj, pokud je null).
  4. nastaví finální konfiguraci na spojení výchozí a konfigurace prostředí voláním lodashovy metody sloučení.
  5. nastaví globální proměnnou gConfig s hodnotou konečné konfigurace.
  6. zaznamenává hodnotu gConfig.

nakonec vytvoříme root / server.js to vše otestovat v prohlížeči. Níže uvedený kód je samozřejmý. Otestujte jej nastavením různých hodnot pro proměnnou prostředí NODE_ENV.

a zde jsou některé screenshoty z testování nastavením proměnné prostředí NODE_ENV v serveru.js k vývoji a inscenaci. Můžete vidět, že pro pracovní prostředí, hodnoty pro jmeno_aplikace, app_desc a json_indentation nemění, a se zvedl od vývojové prostředí, kde, jak hodnoty pro config_id, node_port a databáze jsou přepsána.

Log výstup pro vývojové prostředí

Prohlížeč výstup pro vývojové prostředí

Log výstup pro pracovní prostředí

Prohlížeč výstup pro pracovní prostředí

můžete klon / ke stažení výše uvedený kód z mého úložiště GitHub zde.

jako bonus vám nic nebrání v zahrnutí tajemství, jako jsou klíče API nebo hesla do konfigurace.json. Jednoduše ji zašifrujte v klidu, než ji zatlačíte do zdrojového úložiště pomocí podnikového šifrovacího řešení, jako je služba správy klíčů Google Cloud Platform (KMS). A dešifrovat ji při každém nasazení pomocí svého oblíbeného CI / CD nástroj.

podívejte se na můj blogový příspěvek pomocí služby Cloud Key Management Service (KMS) Google Cloud Platform k šifrování / dešifrování tajemství pro více informací.

Šťastné Kódování!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.