Во время разработки приложения обработка ошибок является важным аспектом для обеспечения бесперебойной работы пользователей и устранения непредвиденных проблем. В Express.js среде у вас есть несколько способов обработки ошибок и предоставления подходящих ответных сообщений пользователям. Вот руководство о том, как этого добиться:
Использование Middleware для глобальной обработки ошибок
Создайте глобальную обработку ошибок middleware, добавив следующий код в конец app.js
основного файла вашего Express.js приложения.
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
Обработка ошибок для конкретных Route
В конкретном случае route вы можете использовать try
-блок catch
для перехвата ошибок и предоставления соответствующих ответных сообщений.
app.get('/profile/:id', async(req, res) => {
try {
const user = await getUserById(req.params.id);
res.json(user);
} catch(error) {
res.status(404).send('User not found!');
}
});
Использование централизованной ошибки Middleware
Создайте централизованную ошибку middleware для обработки ошибок, возникающих из различных файлов route.
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
app.use((err, req, res, next) => {
res.status(err.status || 500);
res.send(err.message || 'Something went wrong');
});
Обработка асинхронных ошибок
В случае асинхронной обработки используйте next
метод для передачи ошибок в глобальную обработку ошибок middleware.
app.get('/data',(req, res, next) => {
fetchDataFromDatabase((err, data) => {
if(err) {
return next(err);
}
res.json(data);
});
});
Заключение
Обработка ошибок является неотъемлемой частью Express.js разработки приложений. Используя middleware, обрабатывая определенные ошибки и предоставляя соответствующие ответные сообщения, вы можете обеспечить бесперебойную и надежную работу приложения для своих пользователей.