繁体   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