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:
- lukee JSON löytyy root / config.JSONin kansio.
- asettaa oletusmäärityksen asetuksesta löytyvälle kehityssolmulle.json.
- 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).
- asettaa lopullisen asetuksen oletus – ja ympäristöasetukselle kutsumalla lodashin yhdistämistapaa.
- asettaa globaalin muuttujan gConfig lopullisen asetuksen arvolla.
- 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.
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!