Проблема, с которой вы столкнулись, может иметь несколько причин. Ваша проблема заключается в том, что middleware всегда перенаправляет запрос на страницу 'contacts', независимо от значения переменной `isLogged`. Разберем несколько распространенных причин, по которым это может происходить:
1. **Положение и порядок middleware**: Убедитесь, что ваше middleware подключено в правильном порядке в вашем приложении. Если оно находится в неправильном месте в цепочке middleware, оно может испортить логику обработки запросов.
2. **Проверка условия**: Проверьте условие, по которому вы проверяете значение `isLogged`. Возможно, оно всегда истинное или ложное, и логика не срабатывает так, как вы ожидаете. Убедитесь, что `isLogged` корректно определен и обновляется на основе действий пользователя.
3. **Конфликт с другими middleware**: Если у вас есть другие middleware, они могут изменять состояние или поведение вашего запроса до того, как ваше middleware обрабатывает его. Попробуйте временно отключить другие middleware и посмотрите на результат.
4. **Кэширование или сессии**: Если вы используете сессии или кэширование, убедитесь, что значение `isLogged` правильно обновляется и сохраняется. Возможно, оно сохраняется уже в устаревшем состоянии.
5. **Ошибки в логике перенаправления**: Перепроверьте вашу логику перенаправления. Возможно, вы не обрабатываете все случаи, и какое-либо условие не выполняется.
Вот пример того, как может выглядеть простое middleware:
```javascript
function myMiddleware(req, res, next) {
const isLogged = req.session.isLogged; // Или любое другое место, где вы храните состояние аутентификации
if (!isLogged) {
return res.redirect('/contacts');
}
next();
}
```
Убедитесь, что переменная `isLogged` корректно определяется и правильно используется. Проверьте все вышеперечисленные моменты и попробуйте добавить логи для отслеживания значений `isLogged` и выполнения middleware, чтобы лучше понять, где происходит сбой.