Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kokia yra geriausia Node.js tarpinės programinės įrangos klaidų tvarkymo praktika


Kokia yra geriausia Node.js tarpinės programinės įrangos klaidų tvarkymo praktika


Štai keletas geriausių Node.js tarpinės programinės įrangos klaidų tvarkymo praktikos pavyzdžių:

1. Naudokite centralizuotą klaidų tvarkymo tarpinę programinę įrangą:
- Sukurkite specialią tarpinės programinės įrangos klaidų tvarkymo funkciją, kuri yra tarpinės programinės įrangos krūvos pabaigoje.
- Ši tarpinė programinė įranga turėtų tvarkyti visas klaidas, kurios plinta tarpinės programinės įrangos grandinėje.
- Klaidų tvarkymo tarpinė programinė įranga turėtų būti atsakinga už registravimą, atsakymą klientui ir galimą išorinių paslaugų pranešimą.

2. Atskirkite veikimo ir programavimo klaidas:
- Veiklos klaidos yra vykdymo klaidos, kurias galima numatyti, pvz., nepavykęs duomenų bazės ryšys arba netinkama vartotojo įvestis.
- Programavimo klaidos yra kodo klaidos, pvz., tipo klaidos arba logikos klaidos.
- Grakščiai tvarkykite veiklos klaidas, klientui pateikdami reikšmingus klaidų pranešimus. Dėl programavimo klaidų sustabdykite procesą ir leiskite procesų valdytojui, pvz., PM2, paleisti programą iš naujo.

3. Naudokite nuoseklius klaidų tvarkymo modelius:
- Asinchroninėms operacijoms nuosekliai naudokite atgalinius skambučius, pažadus arba asinchronizavimą / laukimą.
- Kai naudojate pažadus, visada pridėkite tvarkyklę „.catch()“, kad gautumėte bet kokius atmetimus.
- Kai naudojate asinchronizavimą / laukimą, asinchroninius skambučius visada sudėkite į try/catch bloką.

4. Pateikite prasmingus klaidų pranešimus:
- Įsitikinkite, kad jūsų klaidų pranešimai yra informatyvūs ir pateikia pakankamai konteksto, kad klientas suprastų, kas nutiko.
- Venkite bendrų klaidų pranešimų, pvz., „Vidinė serverio klaida“. Vietoj to pateikite konkrečios informacijos apie klaidą.
– Apsvarstykite galimybę į klaidos atsakymą įtraukti papildomų metaduomenų, pvz., unikalų klaidos kodą arba nuorodą į dokumentus.

5. Atitinkamai registruokite klaidas:
- Įrašykite klaidas atitinkamu lygiu (klaida, įspėjimas, informacija, derinimas), atsižvelgiant į problemos rimtumą.
– Į žurnalo pranešimus įtraukite atitinkamą kontekstą, pvz., išsamią užklausos informaciją, vartotojo informaciją ir dėklo sekimą.
- Apsvarstykite galimybę integruoti su registravimo paslauga, pvz., „Sentry“ arba „Datadog“, kad būtų galima centralizuoti klaidų registravimą ir stebėjimą.

6. Tinkamai tvarkykite asinchronines klaidas:
- Kai tarpinėje programinėje įrangoje naudojate asinchronines operacijas, įsitikinkite, kad tvarkote visas galimas klaidas.
- Jei klaida netvarkoma, gali nutekėti atmintis arba sugesti visa programa.
– Naudokite „try/catch“ blokus arba „.catch()“ tvarkykles, kad užtikrintumėte, jog visos asinchroninės klaidos būtų tinkamai tvarkomos.

7. Įdiekite gracingą išjungimą:
- Kai programa aptinka kritinę klaidą, įsitikinkite, kad serveris grakščiai išsijungia.
- Tai gali apimti duomenų bazių ryšių uždarymą, žurnalų plovimą ir stebėjimo sistemų pranešimus.
- Naudokite procesų tvarkyklę, pvz., PM2, kad galėtumėte atlikti grakštų programos išjungimą ir paleidimą iš naujo.

8. Klaidų tvarkymo bibliotekos:
– Apsvarstykite galimybę naudoti klaidų apdorojimo bibliotekas, pvz., „Express-Validator“ arba „Celebrate“, kad patvirtintumėte įvestį ir nuosekliai tvarkytumėte klaidas.
– Šios bibliotekos gali padėti centralizuoti klaidų tvarkymą ir klientui pateikti geresnius klaidų pranešimus.

Laikydamiesi šios geriausios praktikos, galite sukurti tvirtas ir patikimas Node.js programas, kurios puikiai tvarko klaidas ir užtikrina puikią vartotojo patirtį.

Citatos:
[1] https://stackify.com/node-js-error-handling/
[2] https://www.cloudthat.com/resources/blog/error-handling-middleware-in-node-js-for-building-robust-and-reliable-applications
[3] https://www.toptal.com/nodejs/node-js-error-handling
[4] https://sematext.com/blog/node-js-error-handling/
[5] https://www.tritondatacenter.com/node-js/production/design/errors