Mihin Laitan Kokoonpanot? – Yksinkertainen opas solmussa.JS

Jack Yeh

Follow

Helmi 1, 2020 * 6 min Lue

Paranna Koodivaraston laatua noudattamalla tätä koodausmallia!

tl;dr: Tsekkaa koodi repo osoitteessa https://github.com/teamzerolabs/config-service-reference.

todennäköisesti kyllä. Niin kauan kuin ohjelmasi yhdistää tai soittaa puheluita etäpisteisiin, sen on saatava suojaustunnukset jostain.

on monia eri tapoja ladata nämä tunnukset ohjelmaan:

tämä on yleistä GitHub starter-hankkeissa, toivotaan, että voimme kouluttaa ja vähentää tätä.

Level 1: Hard code it in the text file itself-This usually happen on a Friday, or for people just starting out. Reference repo pitäisi auttaa sinulla on koodi, jota voit vetää käyttää sen sijaan, että teet tämän.

Taso 2: sen lataaminen prosessista.env objekti paikassa, jossa yhteys tapahtuu – tämä on parempi kuin kova koodaus, mutta ajan myötä tekee ympäristömuuttujan hieman vaikea seurata. Koska et voi mennä yhteen tiedostoon etsimään kaikkia viitattuja ympäristömuuttujia.

Taso 3: Lataa kaikki ympäristökokoonpanot yhdestä tiedostosta — tämä on tässä artikkelissa ja koodiesimerkissä! Tämä antaa sinulle hyötyä tietää, mistä mennä etsiä kokoonpanoja, ja anna ohjelman epäonnistua aikaisin, jos huonoja arvoja toimitettiin.

Taso 4: muuta konfiguraatiokomentosarja palveluksi — tekemällä näin saamme kyvyn tehdä muita mielenkiintoisia asioita: tarkistaa ladatut arvot ja ladata lisäkokoonpanoja S3: sta tai tietokannasta ennen kuin muut alustuskoodit suoritetaan.

ennen kuin aloitat

  • , sinulla on solmu.JS runtime ready (versio > 10)
  • Hanki Postman, jos et ole — Vaihtoehtoisesti voit käyttää selainta tai curl lyödä Api.
  • Check out https://github.com/teamzerolabs/config-service-reference into your local space.
  • on MySQL toiminnassa: olen sisällyttänyt docker-compose-tiedoston db-setup – kansioon, voit pyöräyttää ylös menemällä sinne ja ajamalla docker-compose up -d .

nopea esimerkki-Minimikirjapalvelu, joka palauttaa MySQL-tietokantaan tallennetut kirjat

3 hyviä kirjoja!

ensimmäisessä kansiossa node-starthere on kaksi tiedostoa:

  • main.js — tähän asetamme express palvelimen palvelemaan pyyntöä localhost:3000/books
  • models/index.js – yhdistämme MySQL: n kanssa mysql2 ja sequelize .
  • Juokse yarn start aloittaaksesi.

näet, miten tietokannan tunnistetiedot tallennetaan tällä hetkellämodels/index.js :

täällä on vaikea koodata, mutta pystymme parempaan.

hard coding Database-tunnistetietojen varjopuoli

  • se ei ole turvallinen — kuka tahansa julkista arkistoa tarkastava tietää nyt liikaa, varsinkin jos tietokantasi esiintymä on julkinen, se on nyt paljastunut.
  • erilaisten ympäristöjen kanssa työskentely on vaikeaa — jos tämä koodi pitää liittää testaukseen tai tuotannon käyttöönottoon, koodimuutoksia ei kannata tehdä vain käyttöönottoa varten.

Vaihe#1 — Lataa jokainen näistä ympäristömuuttujista

voit lukea lisää ympäristömuuttujista täältä. Ydin on, että voit siirtää arvoja käynnissä olevaan ohjelmaan, kuten tämä

tämä lähestymistapa on hieno, jos sinulla on pieni määrä kokoonpanoja, mutta kuten me kaikki tiedämme, kaikki projektit, jotka selvisivät ensimmäisen kuukauden käytön alkaa integroida enemmän palveluja. (Viime 4 kuukauden projekti minun on 40 muuttujia! Kuvittele kirjoittamalla ne pois Lanka alku lauseke edellä, se on liikaa).

Step#2-Load Environment variables at runtime for local development before use.

onneksi on olemassa paketti, joka pelastaa meidät kirjoittamasta muuttujia uudestaan ja uudestaan. Sen nimi on dotenv . Käytät dotenv: tä näin:

laita koodi src: n alle, tee config-kansio ja luo .env – tiedosto sinne:

DATABASE_URL=localhost
DATABASE_PORT=3306
DATABASE_USERNAME=root
DATABASE_PASSWORD=dIKnUfyfUPURi9irSplTOqGO4OtE0
DATABASE_NAME=configexample

ja dotenv.config lataa tekstitiedostojen muuttujat muotoon process.env, nyt voit ohittaa muuttujien kirjoittamisen kohdassa yarn start !

Step#3 — Convenience methods to parse values and exit early if they are missing

the only thing more dangerous than a misfigured program is a misfigured program running for months per end.

jos unohdimme tehdä .env – tiedoston tai laitoimme siihen huonoja arvoja, mieluiten haluamme tietää sen mahdollisimman aikaisin. Puutteellisella tai väärällä määrityksellä varustetun koodin suorittaminen vaikeuttaa vianmääritystä.

jos katsot toista kansiota node-with-config-service, voit nähdä, että muuttujien jäsentämiseen lisätään ja käytetään seuraavia hyödyllisyysmenetelmiä:

ja kirjoitamme tietokantayhteysosion tähän:

ohjelma poistuu nyt aikaisin virheiden kera, jos ympäristömuuttujat puuttuvat, ja voit luottaa staattiseen konfiguraatio-objektiin, joka on olemassa mistä tahansa ohjelmasta!

tähän lähestymistapaan on vielä kaksi laajennusta — voit soveltaa samoja malleja Konekirjoituksessa ja mennä askeleen pidemmälle perustamalla NestJS: ään varsinaisen auttajapalvelun. Molemmat kuuluvat git-repoon. Käsittelemme näitä tulevassa TypeScript + NestJs-artikkelissa!