solmu.JS Best Practices-älykkäämpiä tapoja hallita asetustiedostoja ja muuttujia

Mar 24, 2018 * 3 min Lue

minusta käytäntö on luoda erillinen solmu.js config tiedostoja hallita config muuttujia eri ympäristöissä (kehitys, testaus, lavastus ja tuotanto) hankalaa.

niinpä päädyin ratkaisuun, joka hallinnoi kaikkien ympäristöjen config-muuttujia yhdellä solmulla.js-asetustiedosto.

ensin luodaan config.json root / config-kansiossa, kuten alla. Ajatuksena on, että kehitys on oletusympäristö ja sisältää kaikki config-muuttujat. Toistat config-muuttujia muissa ympäristöissä vain, jos haluat ohittaa oletuskehitysympäristössä olevat config-muuttujien oletusarvot.

kuten näet, testaus -, lavastus-ja tuotantoympäristöt ohittavat kaikki config_id-ja database config-muuttujat. Lavastus-ja tuotantoympäristöt ohittavat myös node_port config-muuttujan.

seuraavaksi, kirjoitetaan joitakin koodia toteuttaa todellinen logiikka. Luo asetukset.js root / config-kansiossa, kuten alla. Tämä koodi:

  1. lukee JSON löytyy root / config.JSONin kansio.
  2. asettaa oletusmäärityksen asetuksesta löytyvälle kehityssolmulle.json.
  3. asettaa ympäristön asetukset vastaavalle asetuksesta löytyvälle ympäristösolmulle.json perustuu node_env ympäristömuuttujan arvoon (joka itsessään on oletuskehitys, jos null).
  4. asettaa lopullisen asetuksen oletus – ja ympäristöasetukselle kutsumalla lodashin yhdistämistapaa.
  5. asettaa globaalin muuttujan gConfig lopullisen asetuksen arvolla.
  6. kirjaa gconfigin arvon.

lopuksi, Let ’ s luoda root / server.js testata kaikki tämä selaimessa. Alla koodi on itsestään selvä. Testaa se asettamalla eri arvoja NODE_ENV ympäristömuuttujalle.

ja tässä muutamia kuvakaappauksia testauksesta asettamalla node_env ympäristömuuttuja server.js kehitys ja lavastus. Voit nähdä, että lavastusympäristössä APP_NAME -, app_desc-ja json_indentation-arvot eivät muutu ja ne poimitaan kehitysympäristöstä, jossa config_id -, node_port-ja database-arvot ohitetaan.

Log output for development environment

Selainlähtö kehitysympäristöön

vaiheistusympäristön Lokituloste

selaimen ulostulo lavastusympäristöön

voit kloonata / ladata yllä olevan koodin GitHub-arkistostani.

bonuksena mikään ei estä sinua sisällyttämästä configiin salaisuuksia, kuten API-avaimia tai salasanoja.json. Salaa se levossa ennen kuin työnnät sen lähdekoodivarastoon yritysluokan salausratkaisulla, kuten Google Cloud Platform ’ s Cloud Key Management Service (kms). Ja pura se jokaisen käyttöönoton yhteydessä suosikki CI / CD-työkalullasi.

Tutustu blogikirjoitukseeni käyttämällä Google Cloud Platformin Cloud Key Management Service (KMS) – palvelua salaamaan / purkamaan salaisuuksia saadaksesi lisätietoja.

Hyvää Koodausta!

Vastaa

Sähköpostiosoitettasi ei julkaista.