Virheenkäsittely NodeJS + Expressin avulla

( Jaydipsinh Vaghela) (1. syyskuuta 2020)

Kuva: Erik Mclean on Unsplash

Virheiden käsittely Javascriptissa on vähän vähän tuskaa, kun olet vasta aloittamassa. Tänään aion selittää sinulle, miten käsitellä virheitä NodeJS + Expressin kanssa ja erilaisia ​​tapoja tehdä se.

Syy, että kirjoitan tämän artikkelin, johtuu siitä, että kun otan haastattelun nuorempaan rooliin, yleensä kysyy, kuinka käsitellä reittiä, jota ei ole olemassa, tai miten käsitellä virheitä, kun luodaan sovellusliittymä NodeJS: n kanssa? Monet kehittäjät eivät pysty vastaamaan tähän kysymykseen. Joten tämä artikkeli on tarkoitettu erityisesti lähtötason tai nuoremmille kehittäjille.

Aiomme käyttää NodeJS: ää (v12.18. *), Expressia (v4.17. *) Ja ESLintia kanssa Airbnb-koodaustyyliohje . Olen liittänyt Github-linkin viitteellesi, jos haluat tarkistaa sen.

Tässä käsitellään seuraavia asioita:

  • Ymmärrä, kuinka express määrittelee reitit ja sen kartoitus
  • Luo pikavälitiedosto ohjelmointirajapintaan, kun reittiä ei ole
  • Ymmärrä mitä tapahtuu, jos koodi tuottaa satunnaisia ​​virheitä
  • Luo pikavälitiedosto kaikenlaisten virheiden käsittelemiseksi

Express-reittimekanismi & Reittiä ei ole väliohjelmisto

Me voi lisätä reitin ilmaisemaan menetelmällä app.use() tai express.Router(). Kun käytämme tätä menetelmää, express noudattaa ylhäältä alas -lähestymistapaa rekisteröityjen reittien luettelon lisäämiseksi. Joten kun kutsumme sovellusliittymää, palvelin alkaa etsiä vastaavaa reittiä ylhäältä alas. Tämän prosessin aikana se palvelee pyyntöä ensimmäisen vastaavan reitin kanssa. Pystyt luomaan saman reitin useita kertoja express-toiminnolla, mutta tällä lähestymistavalla ensimmäinen reitti suoritetaan aina palvelemaan pyyntöä.

Jos joku yrittää käyttää API-päätepistettä, jota ei ole olemassa, saat odottamaton virhe palvelimelta. Parhaiden käytäntöjen saavuttamiseksi meidän pitäisi huolehtia tällaisesta tilanteesta. Emme voi heittää odottamattomia virheitä käyttöliittymälle, jos tarkastelemme tätä UX-näkökulmasta. Tällaisen tilanteen käsittelemiseksi meidän on käytettävä ilmaista väliohjelmistoa, joka hoitaa reittiä ei ole . Tässä on esimerkkikoodi.

Reittiä ei ole väliohjelmistoa

Tämän väliohjelman on oltava reittimäärittelykoodisi viimeinen lause . Mitään muuta tämän väliohjelman jälkeen määritettyä reittiä ei koskaan suoriteta, joten tämän väliohjelmiston sijainti on erittäin tärkeä. Kun express alkaa etsiä reittiä ja jos se ei löydä yhtään reittiä, express suorittaa tämän väliohjelmiston koodin, jossa voimme suorittaa tarvittavat toimet. Pohjimmiltaan vastaamme vastauksessa virheellisellä virheilmoituksella, jotta käyttöliittymän kaveri voi tehdä siihen tarvittavat toimenpiteet.

Virhe liiketoimintalogiikassa & miten se käsitellään

Käyttäjäkokemus on avain minkä tahansa verkkosovelluksen menestykseen. Haluamme aina käyttäjän vuorovaikutuksen positiivisella tunnelmalla jopa virheiden kanssa! Kirjoitamme tonnia koodia päivittäin, eikä koodia voi kirjoittaa virheettömästi. Varsinkin kun olet junioritasolla, on enemmän mahdollisuuksia saada virheitä. Käsiteltäessä API: n express-koodia, jos koodimme kaatuu normaalisti, koko virheobjekti välitetään vastauksena pyyntöön, joka ei ole kelvollinen missään olosuhteissa. Meidän on käsiteltävä koodin kaatumisia tällä tavalla, jotta voimme välittää oikean virhesanoman käyttäjälle. Tässä on koodinpätkä väliohjelmiston lisäämiseksi mahdollisten virheiden käsittelemiseksi expressissa.

Virhe väliohjelmien käsittelyssä

Tämän avulla liikelogiikassa syntyneet virheet palautetaan virheobjektin sisään. Virheobjekti sisältää virheen koko pinon. Voimme saada tilan vastausobjektilta tietojen asianmukaiseen käsittelyyn. Jos tilakoodia ei löydy, palautamme oletusarvoisen 500 tilakoodin, mikä tarkoittaa, että palvelimessa meni pieleen. Virheiden jäljitysobjektin sisällä on aina viesti ihmisen luettavassa muodossa virheen kuvaamiseksi.

Haluan lisätä tähän muutaman edistyneen asian harkitessani tuotantorakennetta. Meidän pitäisi lähettää hälytys jonnekin ryhtyäksesi asianmukaisiin toimiin jokaisen virheen kohdalla.Normaalisti haluan lähettää sähköpostihälytyksen kehittäjälle, tai voit käyttää virheiden seurantaohjelmaa esimerkiksi BugSnag avulla kaikenlaisten asioiden seuraamiseen.

Alla on koodinpätkä toimivalla koodilla, jotta voit käyttää sitä paikallisesti ja pelata sitä saadaksesi paremman käsityksen. Löydät myös täyden koodin käyttöoikeuden reposta , jossa on toimiva koodi.

GitHub Link: https://github.com/Jaydipsinhv/express-demo

Täysi toimintakoodi ja virheiden käsittely

Toivon, että tämä artikkeli auttaa nuorempaa kehittäjää saamaan enemmän selkeyttä poikkeusten käsittelystä.