Открийте различните видове грешки, с които можете да се справите, и как можете да използвате Express.js, за да се справите с тях.

Ключови изводи

  • Грешките в приложенията на Express.js могат да бъдат категоризирани в синтаксис и грешки по време на изпълнение, грешки при проверка на въвеждане и потребителски грешки, грешки, свързани с базата данни и мрежата, и грешки на API и услуги на трети страни.
  • Улавянето и регистрирането на грешки в конзолата е лесен начин за справяне с грешки по време на фазите на разработка и отстраняване на грешки в Express.js. Пакетите за обработка на грешки като express-error-handler предоставят готова за използване функционалност за управление и реагиране на грешки.
  • Обработката на синхронни и асинхронни грешки с помощта на блокове try-catch е ефективна техника в Express.js. За асинхронни операции интегрирането на ключовите думи async и await в блокове try-catch може да подобри обработката на грешки. Създаването на персонализиран междинен софтуер за обработка на грешки позволява централизиран и персонализиран подход към управлението на грешки.
instagram viewer

В идеален сценарий вие изграждате своите API и бекенд услуги, внедрявате ги в производство, след което седнете и се отпуснете, докато другите ги използват. За съжаление, в реалния свят програмите, които пишете, почти сигурно ще съдържат грешки и бъгове.

Поради тази причина, когато разработвате Express.js API и бекенд услуги, е важно да вземете предвид как могат да възникнат различни грешки и как да се справите ефективно с тях.

Като предвиждате такива сценарии, можете да гарантирате, че вашите приложения не само се справят ефективно с грешките, но и предоставят на потребителите безпроблемно изживяване.

Често срещани типове грешки в Express.js приложения

Когато разработвате Express.js приложения, ще срещнете различни видове грешки, включително:

  1. Синтаксис и грешки по време на изпълнение: Синтактични грешки възникват, когато има грешки в синтаксиса на кода, което означава, че приложението не може да работи. Грешките по време на изпълнение, от друга страна, възникват, когато програмата работи, обикновено поради неочаквани условия или неправилни данни.
  2. Проверка на входа и потребителски грешки: Тези грешки възникват, когато потребителите предоставят недостатъчни или невалидни данни по време на взаимодействие с приложението. Тези грешки могат да се проявят в различни форми, като например липсващи задължителни полета, неправилни формати на данни или стойности, които не отговарят на определени критерии.
  3. Грешки, свързани с базата данни и мрежата: Грешки, свързани с базата данни и мрежата, могат да възникнат, когато има проблем при свързване с база данни или когато комуникацията с външни приложения по мрежата е неуспешна. Тези грешки могат да бъдат особено обезпокоителни, ако приложението ви разчита на мрежата, за да работи.
  4. API на трети страни и грешки в услугата: Грешки могат да възникнат и при взаимодействие с външни API или услуги. При отправяне на заявки към външни системи могат да възникнат различни проблеми. Например API може да прекъсне, да върне отговори с грешки поради невалидни параметри или да върне неочаквани формати на данни.

Има различни техники, които можете да използвате за ефективно справяне с грешки във вашия Express.js API на REST и бекенд услуги.

1. Прихващане и регистриране на грешки в конзолата

Лесен начин за справяне с грешките е да ги хванете и да регистрирате подробностите в конзолата. Този подход ви помага да идентифицирате грешки по време на фазите на разработка и отстраняване на грешки.

Като се използва console.error(), можете да получите представа за естеството и местоположението на грешките във вашето приложение. Ето примерен код:

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. Използване на пакети за обработка на грешки

Express.js предлага няколко мидълуерни пакета за обработка на грешки, за да рационализира управлението на грешки. Един такъв пакет е експресен манипулатор на грешки—тези пакети улесняват обработката и реагирането на грешки, като предоставят готова за използване функционалност, като персонализирани съобщения за грешка и функции за регистриране на грешки.

За да използвате този пакет, трябва да го инсталирате във вашия проект:

npm install express-error-handler

Веднъж инсталиран, можете да използвате функциите му, за да подобрите възможностите на вашето приложение за обработка на грешки.

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

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

Например в примера по-горе да предположим, че потребител поиска маршрут, който не съществува. Функцията за обработка ще задейства и ще пренасочи потребителя към персонализирана страница за грешка 404, 404.html. Това гарантира, че приложението Express.js ефективно обработва грешка ненамерена страница.

По същество тези пакети предоставят по-удобен за потребителя подход за управление на грешки, които могат да възникнат.

3. Обработка на синхронни и асинхронни грешки с помощта на блокове Try-Catch

Боравене синхронно и асинхронно програмиране грешки с помощта на блокове try-catch е ефективна техника в Express.js. За синхронен код можете да управлявате грешките, като опаковате потенциално предразположената към грешки секция в блок try-catch.

Ето примерен код, показващ блокове try-catch в употреба:

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.' });
}
});

Въпреки това, когато работите с асинхронни операции като заявки към база данни или с помощта на Axiosза да консумирате API, блоковете try-catch сами по себе си може да не са достатъчни. В такива случаи вече можете да интегрирате async и изчакване ключови думи в блоковете за по-ефективно справяне с грешките.

Ето примерен код:

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. Създаване на персонализиран междинен софтуер за обработка на грешки

Персонализираният междинен софтуер за обработка на грешки ви позволява да определите как вашата програма обработва грешките и съответните им отговори, според изискванията на вашето приложение.

Чрез създаването на мидълуерни функции за обработка на грешки можете да централизирате и персонализирате управлението на грешки, осигурявайки по-организиран и персонализиран подход за обработка на грешки в цялото приложение.

Ето пример за код на персонализирана функция на мидълуер:

// 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);

В този пример, notFoundHandler функцията проверява ресурс параметър в URL адреса на заявката. В зависимост от предоставената стойност, манипулаторната функция отговаря с персонализирани съобщения за грешка за различни типове ресурси, като потребители и продукти.

За всеки друг ресурс, който не е изрично обработен, той предоставя общо съобщение за грешка. Като алтернатива, в рамките на този междинен софтуер, можете също да изберете да насочвате потребителите към персонализирани страници за грешки, които им помагат как да разрешат проблемите, които срещат.

С помощта на този персонализиран междинен софтуер за обработка на грешки можете да приспособите управлението на грешки и отговорите към различни ситуации, като направите обработката на грешки по-специфична и информативна.

В производствена среда е от съществено значение да се внедри регистриране на грешки и наблюдение, за да се следят грешките в приложението. Някои ефективни инструменти, които можете да използвате, включват Уинстън и Морган, между другото. Тези инструменти регистрират грешки във файл, централизиран сървър или платформа за наблюдение, което ви позволява бързо да идентифицирате и разрешите проблеми.

Ето пример за това как можете да използвате Winston в приложение Express.js за регистриране на грешки:

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

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

Управление на грешки в Backend приложения

Внедряването на ефективни техники за управление на грешки и процедури за безопасност е от съществено значение за изграждането на надеждни бекенд приложения.

В приложенията Express.js е важно да предвидите, планирате и приложите ефективни техники за обработка на грешки, които ще ви позволят бързо да идентифицирате, управлявате и реагирате на грешки. Това ще гарантира по-надеждно и удобно изживяване за вашите потребители.