Mihin Laitan Kokoonpanot? – Yksinkertainen opas solmussa.JS
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:
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 ajamalladocker-compose up -d
.
nopea esimerkki-Minimikirjapalvelu, joka palauttaa MySQL-tietokantaan tallennetut kirjat
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
jasequelize
. - Juokse
yarn start
aloittaaksesi.
näet, miten tietokannan tunnistetiedot tallennetaan tällä hetkellämodels/index.js
:
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!