Megszabadulás a NodeJS + Express hibakezeléséből

( Jaydipsinh Vaghela) (2020. szeptember 1.)

Fotó: Erik Mclean a sablon eltávolításakor

A Javascript hibakezelése kissé egy kis fájdalom, amikor még csak kezded. Ma elmagyarázom neked, hogyan kell kezelni a hibákat a NodeJS + Express szolgáltatással és ennek különböző módjaival.

A cikket azért írom, mert amikor interjút veszek egy junior szerepért, akkor általában felteszi a kérdést, hogyan kell kezelni egy nem létező útvonalat, vagy hogyan kell kezelni a hibákat, miközben API-t hoz létre a NodeJS-sel? Sok fejlesztő nem képes megválaszolni ezt a kérdést. Tehát ez a cikk kifejezetten belépő szintű vagy junior fejlesztők számára készült.

A NodeJS (v12.18. *), Az Express (v4.17. *) És az ESLint fájlokat a következővel fogjuk használni: Airbnb kódolási stílus útmutató . Ha át szeretné tekinteni, csatoltam a Github linket .

Íme a következők: p>

  • Megérteni, hogy az express meghatározza-e az útvonalakat és a leképezését
  • Hozzon létre expressz köztes szoftvert az API kezeléséhez, ha nincs útvonal
  • Megérteni, mi történik, ha a kód véletlenszerű hibákat generál
  • Mindenféle hiba kezeléséhez hozzon létre expressz köztes szoftvert

Express útvonal-mechanizmus & Nincs útvonal, köztes szoftver

Mi hozzáadhat egy útvonalat a kifejezéshez a app.use() vagy express.Router() módszerrel. Amikor ezt a módszert használjuk, az expressz a fentről lefelé megközelítést követi a regisztrált útvonalak listájának hozzáadásához. Tehát amikor API-t hívunk, a szerver felülről lefelé kezdi megtalálni a megfelelő útvonalat. E folyamat során az első egyező útvonallal szolgálja ki a kérést. Expressz segítségével többször létrehozhatja ugyanazt az útvonalat, de ezzel a megközelítéssel az első útvonal mindig végrehajtásra kerül a kérés kiszolgálására.

Ha valaki megpróbál hozzáférni egy nem létező API-végponthoz, akkor váratlan hiba történt a szervertől. A legjobb gyakorlat érdekében gondoskodnunk kell egy ilyen helyzetről. Nem dobhatunk váratlan hibát a kezelőfelületre, ha ezt UX szempontból vesszük figyelembe. Egy ilyen helyzet kezeléséhez az expressz köztes szoftvert kell használnunk, amely gondoskodni fog egy helyzetről, nincs útvonal . Íme néhány példa kód.

Nincs útvonal köztes szoftverrel

Ennek a köztes programnak az útvonal-meghatározási kód utolsó mondatának kell lennie. A köztes szoftver után meghatározott bármely más útvonalat soha nem hajtják végre, ezért ennek a köztes programnak a helyzete nagyon fontos. Amikor az expressz keresni kezd egy útvonalat, és ha nem talál megfelelő útvonalat, akkor az expressz végrehajtja ennek a köztes programnak a kódját, ahol megtehetjük a megfelelő műveletet. Alapvetően megfelelő hibaüzenettel válaszolunk a válaszra, így a frontend srác megfelelő lépéseket tehet rajta.

Hiba az üzleti logikában & hogyan kell kezelni

A felhasználói élmény minden webalkalmazás sikerének kulcsa. Mindig vágyunk a felhasználói interakcióra pozitív hangulattal, még hibákkal is! Rengeteg kódot írunk minden nap, és nem lehet hibamentesen írni. Különösen akkor, ha junior szinten vagy, nagyobb az esély a hibákra. Ha az API expresszével foglalkozunk, ha a kódunk rendesen összeomlik, akkor a teljes hibaobjektumot továbbítjuk válaszként a kérésre, amely semmilyen körülmények között nem érvényes. Ilyen módon kell kezelnünk a kód összeomlásait, hogy a megfelelő hibaüzenetet továbbítsuk a felhasználónak. Itt található a kód, amellyel hozzá lehet adni a köztes szoftvert az expresszben előforduló hibák kezeléséhez.

Hiba a köztes programok kezelésében

Ennek segítségével az üzleti logikán belül generált hibák a hibaobjektumon belül kerülnek visszaadásra. A hibaobjektum tartalmazza a hiba teljes veremkövetését. Az információ megfelelő kezeléséhez megkaphatjuk a válaszobjektum állapotát. Ha nem található állapotkód, akkor visszaadjuk az alapértelmezett 500 állapotkódot, ami azt jelenti, hogy valami hiba történt a szerveren. Mindig van egy üzenet a hibák nyomkövetési objektumában, ember által olvasható formátumban, amely leírja a hibát.

Szeretnék hozzáadni néhány speciális dolgot, amikor figyelembe vesszük a gyártási összeállítást. Riasztást kell küldenünk valahova, hogy minden hiba esetén megfelelő lépéseket tegyünk.Általában e-mailes figyelmeztetést küldök a fejlesztői csapatnak, vagy használhat hibakövető szoftvert, például BugSnag , hogy nyomon kövessen mindenféle dolgot.

Az alábbiakban egy működő kódot tartalmazó kódrészlet található, így helyben futtathatja és játszhat vele a jobb megértés érdekében. Megtalálhatja a teljes kódhozzáférést a repóban működő kóddal.

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

Teljes működési kód hibakezeléssel

Remélem, hogy ez a cikk segít a junior fejlesztőnek abban, hogy a kivételkezeléssel kapcsolatban még egyértelműbbé váljon.