node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)

2020-06-17 07:03:23易采站长站整理

此内容需有node.js+express+mysql入门基础,若基础薄弱,可参考博主的其他几篇node.js博文:

1.下载Mysql数据库,安装并配置。创建用户表供登录使用:

2.node.js平台下Express的session与cookie模块包的配置://www.jb51.net/article/112190.htm

3.node.js平台下的mysql数据库配置及连接://www.jb51.net/article/110079.htm

完成前两步后需下载配置Ejs模块包:

*下载ejs模块包:npm install ejs –save-dev

*配置ejs:


/*设置模板资源路径*/
app.set ("views",__dirname+"/views"); //视图模板都在这个文件夹
/*自定义文件后缀名,设置模板引擎*/
app.engine("html",ejs.__express);
app.set("view engine","html"); //设置模板引擎,代表视图后缀名是ejs

4.登录页面(login.html)


<div class="registerBg">
<section class="registerBox bd">
<div class="regTittle">登陆</div>
<form method="post" action="/login.do">
<input type="text" class="phone" placeholder="请输入手机号" id="phone" name="phone">
<input type="password" placeholder="请输入密码" class="pwd" name="pwd" id="pwd"/>
<div class="other bd">
<label class="obey bd" ><input type="checkbox" id="remPwd" checked> 记住密码</label><a class="forgetPwd">忘记密码?</a>
</div>
<button class="doReg" id="doLogin">登陆</button>
</form>
</section>
</div>

5.登陆界面点击登录按钮后,服务器入口文件(app.js)拦截路由/login.do


const per = require("./routes/perData.js"); //服务器入口文件引入perData.js
app.post("/Login.do",per.doLogin);

6.拦截路由后分发给路由处理文件(perData.js),perData.js暴露/login.do的接口,并提供处理函数。


////登录验证
exports.doLogin=function(req,res){
console.log(req.body.phone);
console.log(req.body.pwd);
db.connect("select * from t_user where u_tel=? and u_pwd=?",[req.body.phone,req.body.pwd],function(err,data){
console.log(data.length);
if(data.length>0){
        //此处应有判断用户在login.html中是否点击了记住密码,本文方便思路理解,默认用户已点击“记住密码”
        //确定用户是否点击checkBox的方法:
        //1.原生js: document.getElementById("remPwd").checked
        //2.jquery: $("#remPwd").is(":checked")