2016-10-13 4 views
0

socket.io를 사용하여 노드 js에 채팅 앱을 만들고 있습니다. 새로운 사용자가 localhost : 3000에 로그인하면 입력하려는 이름과 방을 입력하는 양식이 제공됩니다. 제출 버튼을 누르 자마자이 사용자를 적절한 방으로 리디렉션 할 수 있습니까? dafault가 만든 내 서버는 localhost : 3000이 연결되어있을 때 login.html을 표시합니다. 제출을 클릭하면 두 번째 app.get이 제공 할 수있는 새로운 요청이 이루어집니다.노드 js express의 새 페이지로 리디렉션 하시겠습니까?

app.get("/", function(req, res) { 
    res.sendFile(__dirname + "/login.html"); 
}); 
app.get("/room", function(req,res) { 
    res.sendFile(__dirname + "/chat.html"); 
}); 

login.html의 형태 -

var myForm2 = document.getElementById("myForm2"); 
myForm2.addEventListener("submit", function(e) { 
    e.preventDefault(); 
    document.location = "localhost:3000/room"; 
}); 

답변

1

사용할 수 res.redirect ([상태] 경로)이 같은 :

if (input_are_ok) { 
    res.redirect('public/index.html'); 
} 

이 지정된로 리디렉션됩니다 URL은 지정된 HTTP 상태 코드 상태를 사용합니다. 상태 코드가 지정되지 않은 경우 상태 코드의 기본값은 302입니다 (대부분의 경우 괜찮습니다)

+0

어디에서 코드를 사용합니까? –

+0

참조 : http://stackoverflow.com/questions/19035373/how-do-i-redirect-in-expressjs-while-passing-some-context (거기에있는 아스 핸들러는 사용할 수있는 여러 가지 방법에 대해 자세히 설명합니다.) @DhruvChadha –

관련 문제