¿Cómo redirigir correctamente en NodeJS / ExpressJS?

Estoy creando una aplicación de carrito de compras en nodejs / expressjs. Tengo algunos problemas para redirigir a la página correcta después de que un usuario ha iniciado sesión. He encontrado varios artículos que se relacionan estrechamente, pero todos mis intentos de solucionarlo desde esos artículos no funcionan.

    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");
            }
          });
          }
      });

Lo que sucede es que un usuario ingresa su información de inicio de sesión y hace clic en el botón de inicio de sesión. Una solicitud de Ajax envía los datos a esta función de acceso. La función comienza verificando si el usuario existe en la base de datos. Si lo hace, continúa comparando la contraseña de bcrypt, si son iguales, inician sesión correctamente y si no son iguales, entonces obviamente se equivoca.

El problema parece estar aquí:}else{ req.session.success = true; res.send("Success"); //res.redirect('/'); }

Cuando el correo electrónico del usuario y la contraseña coinciden, se hace clic aquí. Dice ... establezca esta sesión en true, para que el usuario pueda acceder a las páginas donde se requiere esta sesión, y luego envíe un mensaje de Éxito a la solicitud de ajax. Esto actualmente funciona perfectamente bien y el envío res.send se envía al front-end. Cuando descomento el res.redirect, se produce el resultado esperado de 'no se pueden establecer encabezados después de que se establezcan'. Entonces, cuando comento el res.send, el res.redirect simplemente no funciona en absoluto. Sin error, sin romper nada, simplemente nada.

Tengo curiosidad por saber por qué esta redirección aquí no funcionaría. Los encabezados no se configuran en ningún otro lugar en esta función y el resultado esperado debería ser que la redirección funcionaría perfectamente bien. Cualquier ayuda es muy apreciada. Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta