Напишите простое middleware для валидации пользователя
Этот вопрос проверяет умение создавать middleware для обработки запросов в Express.js.
Короткий ответ
Middleware — это функция в Express.js, которая обрабатывает запросы и может изменять их или завершать обработку. Пример middleware для проверки пользователя — проверка наличия данных о пользователе (req.user) перед выполнением маршрута
Длинный ответ
Пример middleware для валидации пользователя:
1. Описание:
Middleware проверяет, есть ли данные о пользователе в запросе, и если их нет, возвращает ошибку. Если пользователь найден, запрос передается дальше.
2. Код:
const validateUser = (req, res, next) => {
const user = req.user;
if (!user) {
return res.status(401).json({ error: 'Unauthorized - User not found' });
}
next(); // Передать запрос следующему обработчику
};
// Использование middleware в маршруте
app.get('/profile', validateUser, (req, res) => {
res.json({ message: 'Добро пожаловать', username: req.user.username });
});
3, Как работает:
- req.user обычно задается после аутентификации, например, через JWT.
- Если данные отсутствуют, возвращается ошибка 401.
- Если данные корректны, вызывается next(), чтобы перейти к следующему обработчику.
4. Преимущества:
- Повышение безопасности.
- Универсальность: можно применять для разных маршрутов.
Middleware — мощный инструмент в Express.js для управления логикой запросов, и валидация пользователя — один из частых сценариев использования.