Objavte rôzne typy chýb, s ktorými si dokážete poradiť, a ako sa s nimi vysporiadať pomocou Express.js.

Kľúčové informácie

  • Chyby v aplikáciách Express.js možno kategorizovať na chyby syntaxe a runtime, chyby overenia vstupu a používateľov, chyby súvisiace s databázou a sieťou a chyby rozhrania API a služieb tretích strán.
  • Zachytenie a protokolovanie chýb do konzoly je jednoduchý spôsob, ako zvládnuť chyby počas fáz vývoja a ladenia v Express.js. Balíky na spracovanie chýb, ako je express-error-handler, poskytujú funkcie pripravené na použitie na správu a reagovanie na chyby.
  • Spracovanie synchrónnych a asynchrónnych chýb pomocou blokov try-catch je efektívna technika v Express.js. Pre asynchrónne operácie môže integrácia kľúčových slov async a wait do blokov try-catch zlepšiť spracovanie chýb. Vytvorenie vlastného middlewaru na spracovanie chýb umožňuje centralizovaný a prispôsobený prístup k správe chýb.

V ideálnom prípade si vytvoríte svoje rozhrania API a backendové služby, nasadíte ich do produkcie, potom sa usadíte a oddýchnete si, kým ich ostatní budú používať. Bohužiaľ, v reálnom svete programy, ktoré napíšete, budú takmer určite obsahovať chyby a chyby.

instagram viewer

Z tohto dôvodu je pri vývoji rozhraní API Express.js a backendových služieb dôležité zvážiť, ako sa môžu vyskytnúť rôzne chyby a ako ich efektívne riešiť.

Predvídaním takýchto scenárov môžete zaistiť, že vaše aplikácie nielen efektívne zvládajú zlyhania, ale tiež poskytujú používateľom bezproblémovú skúsenosť.

Bežné typy chýb v aplikáciách Express.js

Pri vývoji aplikácií Express.js sa stretnete s rôznymi typmi chýb vrátane:

  1. Chyby syntaxe a runtime: Chyby syntaxe sa vyskytujú, keď sú v syntaxi kódu chyby, čo znamená, že aplikáciu nemožno spustiť. Na druhej strane, chyby behu sa vyskytujú, keď je program spustený, zvyčajne v dôsledku neočakávaných podmienok alebo nesprávnych údajov.
  2. Overenie vstupu a chyby používateľa: Tieto chyby sa vyskytujú, keď používatelia poskytujú nedostatočné alebo neplatné údaje počas interakcií s aplikáciou. Tieto chyby sa môžu prejaviť v rôznych formách, ako napríklad chýbajúce povinné polia, nesprávne formáty údajov alebo hodnoty, ktoré nespĺňajú špecifické kritériá.
  3. Chyby súvisiace s databázou a sieťou: Chyby súvisiace s databázou a sieťou sa môžu vyskytnúť, keď sa vyskytne problém s pripojením k databáze alebo keď zlyhá komunikácia s externými aplikáciami cez sieť. Tieto chyby môžu byť obzvlášť problematické, ak sa vaša aplikácia pri prevádzke spolieha na sieť.
  4. Chyby rozhrania API a služieb tretích strán: Chyby môžu nastať aj pri interakcii s externými rozhraniami API alebo službami. Pri zadávaní požiadaviek na externé systémy môžu vzniknúť rôzne problémy. Rozhranie API môže napríklad zaznamenať výpadok, vrátiť odpovede s chybami v dôsledku neplatných parametrov alebo vrátiť neočakávané formáty údajov.

Existujú rôzne techniky, ktoré môžete použiť na efektívne spracovanie chýb v súbore Express.js REST API a backendové služby.

1. Zachytenie a protokolovanie chýb do konzoly

Priamym spôsobom riešenia chýb je zachytiť ich a zaznamenať podrobnosti do konzoly. Tento prístup vám pomôže identifikovať chyby počas fázy vývoja a ladenia.

Používaním console.error()môžete získať prehľad o povahe a umiestnení chýb vo vašej aplikácii. Tu je príklad kódu:

app.get('/example', (req, res) => {
try {
// Code that may cause an error
const result = someFunction();
res.json(result);
} catch (error) {
console.error('Error occurred:', error);
res.status(500).json({ message: 'An error occurred.' });
}
});

2. Používanie balíkov na spracovanie chýb

Express.js ponúka niekoľko middlewarových balíkov na spracovanie chýb na zefektívnenie správy chýb. Jedným z takýchto balíkov je expresný-spracovateľ-chyby—tieto balíky uľahčujú manipuláciu a reakciu na chyby tým, že poskytujú funkcie pripravené na použitie, ako sú vlastné chybové hlásenia a funkcie zaznamenávania chýb.

Ak chcete použiť tento balík, musíte ho nainštalovať do svojho projektu:

npm install express-error-handler

Po nainštalovaní môžete použiť jeho funkcie na vylepšenie schopností vašej aplikácie odstraňovať chyby.

const errorHandler = require('express-error-handler');

// Register the error-handling middleware
app.use(errorHandler({
static: {
'404': 'path/to/404.html'
}
}));

Napríklad v príklade vyššie predpokladajme, že používateľ požaduje trasu, ktorá neexistuje. Funkcia obsluhy spustí a presmeruje používateľa na vlastnú chybovú stránku 404, 404.html. To zaisťuje, že aplikácia Express.js efektívne spracuje chybu, ktorá sa nenašla.

Tieto balíky v podstate poskytujú užívateľsky prívetivejší prístup k správe chýb, ktoré sa môžu vyskytnúť.

3. Spracovanie synchrónnych a asynchrónnych chýb pomocou blokov Try-Catch

Manipulácia synchrónne a asynchrónne programovanie chyby pomocou blokov try-catch je efektívna technika v Express.js. V prípade synchrónneho kódu môžete spravovať chyby zabalením sekcie potenciálne náchylnej na chyby do bloku try-catch.

Tu je ukážka kódu zobrazujúca používané bloky pokusov:

app.get('/data', (req, res) => {
try {
// code that may cause an error
const result = someFunction();
res.json(result);
} catch (error) {
console.error('Error occurred:', error);
res.status(500).json({ message: 'An error occurred.' });
}
});

Pri práci s asynchrónnymi operáciami ako sú databázové dotazy resp pomocou Axiosna spotrebovanie API nemusia samotné bloky try-catch stačiť. V takýchto prípadoch môžete teraz integrovať asynchrónne a čakať kľúčové slová v rámci blokov na efektívnejšie spracovanie chýb.

Tu je nejaký vzorový kód:

app.get('/data', async (req, res) => {
try {
const data = await fetchDataFromDatabase();
res.json(data);
} catch (error) {
console.error('Async Error:', error);
res.status(500).json({ message: 'Error occurred fetching data.' });
}
});

4. Vytváranie vlastného middlewaru na spracovanie chýb

Vlastný middleware na spracovanie chýb vám umožňuje definovať, ako váš program spracováva chyby a ich zodpovedajúce reakcie podľa požiadaviek vašej aplikácie.

Vytvorením funkcií middlewaru na spracovanie chýb môžete centralizovať a prispôsobiť správu chýb, čím sa zabezpečí organizovanejší a prispôsobenejší prístup k riešeniu chýb v celej aplikácii.

Tu je príklad vlastného kódu funkcie middlewaru:

// Custom middleware for handling not found errors
const notFoundHandler = (req, res, next) => {
const resource = req.params.resource;

if (resource 'users') {
return res.status(404).json({ message: 'User not found.' });
} elseif (resource 'products') {
return res.status(404).json({ message: 'Product not found.' });
} else {
return res.status(404).json({ message: 'Requested resource not found.' });
}
};

app.use('/api/:resource', notFoundHandler);

V tomto príklade notFoundHandler funkcia kontroluje zdroj parameter v adrese URL požiadavky. V závislosti od poskytnutej hodnoty funkcia handlera odpovedá vlastnými chybovými správami pre rôzne typy zdrojov, ako sú používatelia a produkty.

Pre akýkoľvek iný zdroj, ktorý nie je explicitne spracovaný, poskytuje všeobecnú chybovú správu. Alternatívne sa v rámci tohto midlvéru môžete rozhodnúť nasmerovať používateľov na vlastné chybové stránky, ktoré im pomôžu vyriešiť problémy, s ktorými sa stretli.

Použitím tohto vlastného midlvéru na spracovanie chýb môžete prispôsobiť správu chýb a reakcie na rôzne situácie, vďaka čomu bude spracovanie chýb špecifickejšie a informatívnejšie.

V produkčnom prostredí je nevyhnutné implementovať protokolovanie chýb a monitorovanie na sledovanie chýb aplikácií. Niektoré účinné nástroje, ktoré môžete použiť, zahŕňajú Winston a Morgan, okrem iného. Tieto nástroje zaznamenávajú chyby do súboru, na centralizovaný server alebo na monitorovaciu platformu, čo vám umožňuje rýchlo identifikovať a vyriešiť problémy.

Tu je príklad, ako môžete použiť Winston v aplikácii Express.js na zaznamenávanie chýb:

const winston = require('winston');
const expressWinston = require('express-winston');

app.use(expressWinston.errorLogger({
// Error logging middleware using Winston
}));

Správa chýb v backendových aplikáciách

Implementácia efektívnych techník správy chýb a bezpečných postupov je nevyhnutná pri budovaní robustných backendových aplikácií.

V aplikáciách Express.js je dôležité predvídať, plánovať a implementovať efektívne techniky spracovania chýb, ktoré vám umožnia rýchlo identifikovať, spravovať a reagovať na chyby. Pre vašich používateľov to zaručí spoľahlivejšie a užívateľsky prívetivejšie skúsenosti.