2017-12-19 223 views
5

Oturum açma işlemi başarılı olduğunda istemciyi bir sonraki sayfaya göndermeye çalışıyorum, sayfa onayladım sayfa.but biraz hata alıyorum. image screenshotBaşarılı bir şekilde giriş yaptıktan sonra başka bir sayfaya nasıl yönlendirilir nodejs

router.post('/sign_in', urlend, function(req, res) { 
    var email = req.body.user_id; 
    var password = req.body.password; 
    if (email != '' && password != '') { 
    user_modell.findOne({ 
     email: email, 
     password: password 
    }, function(err, data) { 
     if (err) { 
     //res.status(500).send(); 
     console.log('error'); 
     } else if (!data) { 
     console.log('Incorrect User ID or Password'); 
     return res.end(); 
     } else { 
     res.render("confirm"); 
     } 
    }); 
    } 
    res.end(); 
}); 
+0

return res.redirect ('/ HomePage'); – Lalit

+0

Burada zaten yanıtladı https://stackoverflow.com/questions/36434978/how-to-redirect-to-another-page-in-node-js – Lalit

+0

efendim zaten bunu yapmak, lütfen ilgili ekli screenshot bakın. Ben tekrar parameeter kullanıyorum, işlenmemiş hata olayları ile karşı karşıya. –

cevap

2

response.redirect('URL'); Siz de express-redirect paketini kullanabilirsiniz

router.post('/sign_in',urlend,function(req,res){ 
    var email=req.body.user_id; 
    var password=req.body.password; 
    if(email!='' && password!=''){  
     user_modell.findOne({email:email,password:password},function(err,data){ 
      if(err){ 
       //res.status(500).send(); 
       console.log('error'); 
      } else if(!data){ 
       console.log('Incorrect User ID or Password'); 
       return res.end(); 
      }else{ 
        res.redirect("/confirm"); 
      } 
     }); 
    } 
    res.end(); 
}); 

başka bir sayfaya

Kod isteği yönlendirmek için kullanılır. kodunuzu iki yanıtları göndermeyi dener çünkü hata

hata [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client için

açıklanması olduğunu. model.findOne, zaman aşımı gibidir. Bir geri aramada geçersiniz ve daha sonra çalışır. Bu, res.end()'un üstbilgileri ayarladığı ve bir yanıt gönderdiği anlamına gelir. Daha sonra, geri aranmanız çağrılır ve başka bir yanıt göndermeye çalışırsınız.

Bir telefon görüşmesi gibi düşünün: birisi sizi arar ve size e-postalarını/şifrelerini söyler, "Bir saniye bekle, sadece kontrol ederim" diyorsunuz, sonra telefonu kapatıp bir not defteri alacaksınız bilinen e-postalar/şifreler. Sonra ne cevap vermek istediğini anladığın zaman telefonu geri alırsın, ama kimse dinlemez, çünkü telefonu kapattığın zaman onları kesersin!

+0

Efendim kodunuzla çalışıyorum ama hala hatam var. Lütfen ilgili ekli olan ekrana bakın. işlenmemiş hatayla karşılaşıyorum. –