2017-12-19 129 views
5

Tôi đang cố gửi khách hàng đến trang tiếp theo khi quá trình đăng nhập được thực hiện thành công, trang xác nhận trang. Nhưng tôi đang gặp phải một số lỗi. image screenshotCách chuyển hướng trang khác sau khi đăng nhập thành công 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

Đã được trả lời ở đây https://stackoverflow.com/questions/36434978/how-to-redirect-to-another-page-in-node-js – Lalit

+0

sir tôi đã làm điều này, vui lòng tham khảo ảnh chụp màn hình được đính kèm trong câu hỏi. tôi đang phải đối mặt với các sự kiện lỗi unhanded, trong khi tôi đang sử dụng res parameeter. –

Trả lời

2

response.redirect('URL'); được sử dụng để chuyển hướng yêu cầu đến một trang

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

Bạn có thể sử dụng express-redirect gói là tốt.

Giải thích cho lỗi lầm của mình

Các lỗi [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client là bởi vì mã của bạn cố gắng để gửi hai câu trả lời. model.findOne giống như thời gian chờ. Bạn vượt qua trong một cuộc gọi lại và nó thực hiện sau này. Điều này có nghĩa là res.end() đặt tiêu đề và gửi phản hồi. Sau đó, gọi lại của bạn được gọi và bạn cố gắng gửi một phản hồi khác.

Hãy nghĩ về trò chuyện như cuộc trò chuyện qua điện thoại: ai đó gọi cho bạn và cho bạn biết email/mật khẩu của họ, bạn nói "Chờ một chút, tôi sẽ kiểm tra", sau đó bạn cúp điện thoại và nhặt sổ ghi chép email/mật khẩu đã biết. Sau đó, khi bạn tìm ra những gì bạn muốn phản hồi, bạn chọn điện thoại sao lưu, nhưng không có ai lắng nghe, khiến bạn cắt chúng khi bạn gác máy!

+0

sir tôi cố gắng với mã của bạn nhưng tôi vẫn còn trong error.please tham khảo screennshot kèm theo trong câu hỏi. tôi đang đối mặt với lỗi không được xử lý. –

Các vấn đề liên quan