簡體   English   中英

重定向到節點js express中的新頁面?

[英]Redirect to a new page in node js express?

我正在使用socket.io在節點js中創建一個聊天應用程序。 當新用戶登錄到localhost:3000時,將顯示一個表單,您可以在其中輸入您的名稱和要輸入的房間。 按下“提交”按鈕后,如何將該用戶重定向到合適的房間? 當localhost:3000連接到我的服務器時,由dafault顯示的login.html,我希望單擊提交后發出新請求,以便第二個app.get可以為其提供服務。

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

您可以像這樣使用res.redirect([status,] path):

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

這將使用指定的HTTP狀態代碼狀態重定向到給定的URL。 如果未指定狀態碼,則狀態碼默認為302(在大多數情況下都可以)

提交表單后,瀏覽器使用輸入作為查詢字符串的參數,將該表單轉換為HTTP請求。 假設您在login.html中有一個這樣的表單:

<form action="/chat.html">
    <label>Display username</label>
    <input type="text" name="username" placeholder="Display name" required>
    <label>Room</label>
    <input type="text" name="room" placeholder="Room" required>
    <button>Join</button>
</form>

單擊它后,此html頁面將使用2個字符串參數重定向到/ chat route。 您的網址將如下所示:

http:// localhost:3000 / chat.html?username = yourUserName&room = yourRoom

現在,您需要創建一個chat.html,提交后將顯示此頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM