response.redirect не работает в node.js который использует сеанс

#javascript #node.js #session #redirect #express

#javascript #node.js #сеанс #перенаправление #выразить

Вопрос:

На моей странице входа в систему у меня есть следующий код, после аутентификации пользователя я перенаправляю пользователя на домашнюю страницу.

Этот код работает нормально и перенаправляет меня на домашнюю страницу, но когда я добавляю

 app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));
  

эти ссылки, response.redirect не будут работать, и домашняя страница продолжает загружаться, но ответ никогда не заканчивается.

 app.post('/', function(request, response){
    if(request.body.user.name!= undefined amp;amp; request.body.user.password !=undefined)
    {
        Auth.autoLogin(request.body.user.name, request.body.user.password, function(o){
        if (o != null){
        console.log("Login Successful");                 
                response.redirect('/home'); 
                } else{
        response.render('index', { error-message: 'Login Failed' });
                }
    });
    } 
    else
        console.log("Please enter valid input");
});
  

Пожалуйста, предложите мне какие-либо решения

Ответ №1:

… страница продолжает загружаться, но ответ никогда не заканчивается

Похоже, что с вашим промежуточным программным обеспечением аутентификации что-то не так. Загрузка страницы происходит, когда next() не вызывается в промежуточном программном обеспечении, следовательно, ответа нет.

Комментарии:

1. Нет проблем с промежуточным программным обеспечением аутентификации, я могу видеть сообщение «Успешный вход в систему» в окне моей консоли.

2. Да, но, насколько я понимаю, Auth в какой-то момент устанавливает сеанс через express.session, и, похоже, это тот момент, когда sth терпит неудачу.