2017-12-19 93 views
5

मैं लॉगिन प्रक्रिया सफल होने पर क्लाइंट को अगले पृष्ठ पर भेजने की कोशिश कर रहा हूं, पृष्ठ पृष्ठ की पुष्टि करता है। लेकिन मुझे कुछ त्रुटि मिल रही है। image screenshotसफल रूप से लॉगिन करने के बाद किसी अन्य पृष्ठ को रीडायरेक्ट करने के लिए कैसे करें

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

वापसी res.redirect ('/ होमपेज'); – Lalit

+0

पहले से ही यहां जवाब दिया गया है https://stackoverflow.com/questions/36434978/how-to-redirect-to-another-page-in-node-js – Lalit

+0

महोदय, मैंने पहले ही यह किया है, कृपया प्रश्न में संलग्न स्क्रीनशॉट देखें। मुझे अनचाहे त्रुटि घटनाओं का सामना करना पड़ रहा है, जबकि मैं res parameeter का उपयोग कर रहा हूं। –

उत्तर

2

response.redirect('URL'); एक और पेज

कोड

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

साथ ही आप express-redirect पैकेज का उपयोग कर सकते करने के लिए अनुरोध को रीडायरेक्ट किया जाता है। अपने त्रुटि

त्रुटि [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client के लिए

स्पष्टीकरण क्योंकि आपके कोड दो प्रतिक्रियाओं भेजने का प्रयास करता है। model.findOne एक टाइमआउट की तरह है। आप कॉलबैक में पास करते हैं और बाद में निष्पादित करते हैं। इसका मतलब है कि res.end() शीर्षलेख सेट करता है और एक प्रतिक्रिया भेजता है। फिर बाद में, आपके कॉलबैक को बुलाया जाता है और आप एक और प्रतिक्रिया भेजने की कोशिश करते हैं।

इसे एक टेलीफोन वार्तालाप की तरह सोचें: कोई आपको कॉल करता है और आपको अपना ईमेल/पासवर्ड बताता है, आप कहते हैं, "एक सेकंड पर पकड़ो, मैं बस चेक करूंगा", फिर आप फोन लटकाते हैं और नोटबुक लेते हैं ज्ञात ईमेल/पासवर्ड। फिर जब आप यह पता लगाते हैं कि आप किसके साथ जवाब देना चाहते हैं, तो आप फोन को बैक अप लेते हैं, लेकिन कोई भी नहीं सुन रहा है, क्योंकि जब आप फोन लटकाते हैं तो आप उन्हें काटते हैं!

+0

महोदय, मैं आपके कोड के साथ प्रयास कर रहा हूं लेकिन मैं अभी भी त्रुटि में हूं। कृपया प्रश्न में संलग्न स्क्रीनशॉट देखें। मुझे अवांछित त्रुटि का सामना करना पड़ रहा है। –

संबंधित मुद्दे

 संबंधित मुद्दे