nod.js cele mai bune practici – modalități mai inteligente de a gestiona fișierele de configurare și variabile

Mar 24 · 2018 * 3 min citit

mi se pare practica de a crea nod separat.JS fișiere de configurare pentru a gestiona variabile de configurare pentru diferite medii (dezvoltare, testare, de așteptare și de producție) greoaie.

așa că am ajuns cu o soluție care gestionează variabile de configurare pentru toate mediile cu un singur nod.fișier de configurare js.

în primul rând, să creăm config.json în folderul root / config ca mai jos. Ideea este de dezvoltare este mediul implicit și conține toate variabilele de configurare. Repetați variabilele de configurare numai în alte medii dacă doriți să suprascrieți valorile variabilei de configurare implicite găsite în mediul de dezvoltare implicit.

Deci, după cum puteți vedea, testarea, stadializarea și mediile de producție suprascriu toate variabilele config_id și baza de date config. Și mediile de așteptare și de producție suprascriu, de asemenea, variabila de configurare node_port.

apoi, să scriem un cod pentru a implementa logica reală. Creați config.js în folderul root / config ca mai jos. Acest cod:

  1. Citește JSON găsit în root / config.dosarul json.
  2. Setează config implicit la nodul de dezvoltare găsit în config.json.
  3. Setează configurarea mediului la nodul de mediu corespunzător găsit în config.json bazat pe valoarea variabilei de mediu NODE_ENV (care în sine implicit la dezvoltare dacă null).
  4. Setează config final la Uniunea de config implicit și mediu prin apelarea metodei de îmbinare lodash lui.
  5. Setează variabila globală gConfig cu valoarea configurării finale.
  6. înregistrează valoarea gConfig.

în cele din urmă, să creăm root/server.js pentru a testa toate acestea într-un browser. Codul de mai jos este auto-explicativ. Testați-l prin setarea unor valori diferite pentru variabila de mediu NODE_ENV.

iată câteva capturi de ecran din testare prin setarea variabilei de mediu NODE_ENV în server.js la dezvoltare și stadializare. Puteți vedea că pentru mediul de așteptare, valorile pentru app_name, app_desc și json_indentation nu se schimbă și sunt preluate din mediul de dezvoltare în care valorile pentru config_id, node_port și baza de date sunt suprascrise.

ieșire jurnal pentru mediul de dezvoltare

ieșire Browser pentru mediul de dezvoltare

ieșire jurnal pentru mediul de așteptare

ieșire Browser pentru mediul de așteptare

puteți clona / descărca codul de mai sus din depozitul meu GitHub aici.

ca bonus, nimic nu te oprește să incluzi secrete precum cheile API sau parolele în config.json. Pur și simplu criptați-l în repaus înainte de a-l împinge în depozitul sursă utilizând o soluție de criptare de nivel enterprise, cum ar fi serviciul de gestionare a cheilor Cloud (Kms) al platformei Google Cloud Platform. Și decripta – l la fiecare implementare folosind instrumentul preferat CI / CD.

consultați postarea mea pe blog folosind serviciul de gestionare a cheilor Cloud (Kms) al platformei Google Cloud Platform pentru a cripta / decripta secretele pentru mai multe informații.

Codificare Fericit!

Lasă un răspuns

Adresa ta de email nu va fi publicată.