Как правильно перенаправить в NodeJS / ExpressJS?

Я создаю приложение для корзины покупок в nodejs / expressjs. У меня возникают некоторые проблемы с перенаправлением на правильную страницу после того, как пользователь вошел в систему. Я нашел несколько статей, которые тесно связаны, но все мои попытки исправить это из этих статей не дают результата.

    access: function(req, res){
  var data = JSON.parse(req.body.data);
  console.log(data);
      Customers.findOne({"custEmail": data.custEmail}, function(err, user){
        if(err){
          console.log(err);
          res.send("error");
        }if(!user){
          console.log("user not found");
          res.send("error");
        }else{
          console.log("user found");
          bcrypt.compare(data.custPassword, user.custPassword, function(err, reponse){
            if(reponse){
              req.session.regenerate(function(err){
                if(err){
                  console.log(err);
                  res.send("error");
                }else{
                  req.session.success = true;
                  res.send("Success");
                  //res.redirect('/');
                }
              });
            }else{
              console.log("error");
            }
          });
          }
      });

Что происходит, пользователь вводит свои данные для входа и нажимает кнопку входа. Ajax-запрос отправляет данные в эту функцию доступа. Функция начинается с проверки, существует ли пользователь в базе данных. Если это так, то он продолжает сравнивать пароль bcrypt, если они равны, они успешно входят в систему и, если они не равны, то, очевидно, он выдает ошибку.

Проблема, кажется, здесь:}else{ req.session.success = true; res.send("Success"); //res.redirect('/'); }

Когда электронная почта пользователя и пароль совпадают, это происходит прямо здесь. В нем говорится ... установите для этого сеанса значение true, чтобы пользователь мог получить доступ к страницам, на которых этот сеанс требуется, и затем отправляет сообщение об успехе обратно в запрос ajax. В настоящее время это прекрасно работает, и res.send отправляется на передний конец. Когда я раскомментирую res.redirect, происходит ожидаемый результат «невозможно установить заголовки после того, как они установлены». Поэтому, когда я закомментирую res.send, res.redirect просто перестает работать вообще. Никаких ошибок, никаких поломок, просто ничего.

Мне интересно, почему этот редирект здесь не будет работать? Заголовки не устанавливаются где-либо еще в этой функции, и ожидаемый результат должен состоять в том, что перенаправление будет работать отлично. Любая помощь очень ценится. Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос