Node.Js Best Practices – Smartere Måter Å Administrere Config Filer Og Variabler

Mar 24, 2018 * 3 min lese

jeg finner praksisen med å lage egen Node.js config filer for å administrere config variabler for ulike miljøer (utvikling, testing, iscenesettelse og produksjon) tungvint.

så jeg endte opp med en løsning som styrer config variabler for alle miljøer med en Enkelt Node.js config-fil.

Først, la oss lage config.json i root / config mappe som nedenfor. Ideen er utvikling er standard miljø og inneholder alle config variabler. Du gjentar bare config-variabler i andre miljøer hvis du vil overstyre standard config-variabelverdiene som finnes i standardutviklingsmiljøet.

så som du kan se, testing, iscenesettelse og produksjonsmiljøer alle overstyre config_id og database config variabler. Og staging og produksjonsmiljøer overstyrer også node_port config-variabelen.

Neste, la oss skrive noen kode for å implementere den faktiske logikken. Opprett config.js i root / config mappe som nedenfor. Denne koden:

  1. Leser JSON funnet i root / config.json-fil.
  2. Setter standard config til utvikling node funnet i config.json.
  3. Setter environment config til tilsvarende miljønode funnet i config.json basert PÅ node_env miljøvariabel verdi(som selv standard til utvikling hvis null).
  4. Setter endelig config til unionen av standard og miljø config ved å kalle lodash flette metode.
  5. Angir global variabel gConfig med verdien av endelig config.
  6. Logger verdien av gConfig.

Til Slutt, la oss lage root / server.js for å teste alt dette i en nettleser. Nedenfor koden er selvforklarende. Test det ved å sette forskjellige verdier FOR node_env miljøvariabel.

Og her er noen skjermbilder fra testing ved å sette node_env miljøvariabelen i server.js til utvikling og staging. Du kan se at verdiene for app_name, app_desc og json_indentation ikke endres og hentes fra utviklingsmiljøet der verdiene for config_id, node_port og database overstyres.

Logg utgang for utviklingsmiljø

Nettleser utgang for utviklingsmiljø

Logg utgang for staging miljø

Leserutgang for staging miljø

du kan klone / laste ned over kode fra Mitt GitHub repository her.

som en bonus stopper ingenting deg fra å inkludere hemmeligheter SOM API-nøkler eller passord i config.json. Bare krypter den i ro før du sender den til kilderegisteret ved hjelp Av en krypteringsløsning i bedriftsklassen, Som Google Cloud Platforms Cloud Key Management Service (KMS). Og dekryptere det på hver distribusjon ved hjelp av din favoritt CI / CD verktøy.

Sjekk ut blogginnlegget Mitt Ved Hjelp Av Google Cloud Platforms Cloud Key Management Service (KMS) For Å Kryptere / Dekryptere Hemmeligheter for mer info.

Glad Koding!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.