![](/img/trans.png)
[英]Node.JS and Express res.redirect() not enabling new webpage
[英]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.