Node.JS:如何使用参数转发到登录页面?
Node.JS:如何使用参数转发到登录页面?
我正在使用node.js,express,express-session,ejs构建登录功能。
这是登录页面(即index.ejs)
<html>
<head>
<meta charset="UTF-8">
<title>Video Chat Room</title>
<link rel="stylesheet" type="text/css" href="/css/style.css">
<style>
#message
{
color:red;
font-weight: bold;
}
</style>
<script src=".4.1/jquery.min.js"></script>
<script>
$( document ).ready(function() {
var messageBox=document.getElementById("message");
<%
if (typeof errorField!="undefined") {
switch (errorField) {
case "email":%>
messageBox.innerHTML="Your email address has been used by another user, please use another one.";
document.getElementById("email").focus();
<% break;
case "logoutSuccess":%>
messageBox.innerHTML="<%=alias%> has successfully logged out.";
<% break;
}
}
%>
});
</script>
</head>
<body>
<form method="post" action="/login">
Nick name/Alias:<input type=text required name="alias" value="<%=((typeof user=='undefined')?'':user.alias)%>"><br>
Email Address:<input type=email id="email" required name="email" value="<%=((typeof user=='undefined')?'':user.email)%>"><br>
<input type="submit" value="Login">
</form>
<div id="message">
</div>
</body>
</html>
这是服务器端代码(即server.js)
........
app.get('/',function (req,res) {
res.render('../ejs/index.ejs');
});
app.post('/login', function(req, res) {
var alias = req.body.alias;
var email = req.body.email;
var user=require("./classes/user.js");
user.alias=alias;
user.email=email;
if (user.login) {
req.session.user = user;
res.redirect('/home/');
} else {
res.locals.errorField="email";
res.locals.user=user;
res.render('../ejs/index.ejs');
}
但是,当登录过程失败时,尽管Web输出了登录页面(即index.ejs),但浏览器地址栏仍停留在“ / login”中,这很好。是否可以将浏览器地址栏更改为“ /”,并且index.ejs也可以读取errorField和用户值?
回答如下:如果您希望用户登录错误返回到/
,则需要执行res.redirect("/")
。如果要向该页面添加一些可以在服务器端渲染或客户端渲染中使用的参数,那么最简单的方法是添加查询参数:
最新文章
- php API接口最基本的写法
- iOS annotation
- python中的platform模块获取平台信息
- linux下生成dump文件方法及设置
- Cygwin 与 MinGWMSYSMSYS2,如何选择?
- 解决 “8080“ 端口号被占用问题!
- 职场之路
- HTK 安装、编译以及测试——Ubuntu 14.04
- Android 6.0 Marshmallow介绍
- vss命令行的使用
- VC学习资料收集(12):VC小知识总结
- 机器学习几种距离比较:欧拉距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)和明可夫斯基距离(Minkowski Distance)
- 信息论与编码
- c语言上机试题库及答案,《C语言上机试题及答案》.doc
- 实现移动端H5页面调用摄像头
- mysql upsert语法
- https ssl单项认证和双向认证以及证书生成
- Shiro详解
- IT企业面试常见逻辑推理题智力题及详解答案(二)
- qt学习笔记(八)之深入QSqlQuery