最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js平臺(tái)下利用cookie實(shí)現(xiàn)記住密碼登陸(Express+Ejs+Mysql)

 更新時(shí)間:2017年04月26日 10:23:08   作者:牙疼哥哥  
這篇文章主要介紹了node.js平臺(tái)下利用cookie實(shí)現(xiàn)記住密碼登陸(Express+Ejs+Mysql),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

此內(nèi)容需有node.js+express+mysql入門基礎(chǔ),若基礎(chǔ)薄弱,可參考博主的其他幾篇node.js博文:

1.下載Mysql數(shù)據(jù)庫(kù),安裝并配置。創(chuàng)建用戶表供登錄使用:

2.node.js平臺(tái)下Express的session與cookie模塊包的配置:http://www.fzitv.net/article/112190.htm

3.node.js平臺(tái)下的mysql數(shù)據(jù)庫(kù)配置及連接:http://www.fzitv.net/article/110079.htm

完成前兩步后需下載配置Ejs模塊包:

*下載ejs模塊包:npm install ejs --save-dev

*配置ejs:

  /*設(shè)置模板資源路徑*/
  app.set ("views",__dirname+"/views");  //視圖模板都在這個(gè)文件夾
  /*自定義文件后綴名,設(shè)置模板引擎*/
  app.engine("html",ejs.__express);
  app.set("view engine","html");  //設(shè)置模板引擎,代表視圖后綴名是ejs

4.登錄頁(yè)面(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="請(qǐng)輸入手機(jī)號(hào)" id="phone" name="phone">
      <input type="password" placeholder="請(qǐng)輸入密碼" class="pwd" name="pwd" id="pwd"/>
      <div class="other bd">
        <label class="obey bd" ><input type="checkbox" id="remPwd" checked>&nbsp;記住密碼</label><a class="forgetPwd">忘記密碼?</a>
      </div>
      <button class="doReg" id="doLogin">登陸</button>
    </form>
  </section>
</div>

5.登陸界面點(diǎn)擊登錄按鈕后,服務(wù)器入口文件(app.js)攔截路由/login.do

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

6.攔截路由后分發(fā)給路由處理文件(perData.js),perData.js暴露/login.do的接口,并提供處理函數(shù)。

////登錄驗(yàn)證
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){
        //此處應(yīng)有判斷用戶在login.html中是否點(diǎn)擊了記住密碼,本文方便思路理解,默認(rèn)用戶已點(diǎn)擊“記住密碼”
        //確定用戶是否點(diǎn)擊checkBox的方法:
        //1.原生js: document.getElementById("remPwd").checked
        //2.jquery: $("#remPwd").is(":checked")
      res.cookie("user",{"user":req.body.phone,"pwd":req.body.pwd},{maxAge:1000*60*60});    //登陸成功后將用戶和密碼寫(xiě)入Cookie,maxAge為cookie過(guò)期時(shí)間
      req.session.user=req.body.phone;                             //服務(wù)器端session保存登陸的會(huì)話狀態(tài)
      res.render("perCenter",{u_tel:req.session.user});                        //ejs模板引擎渲染用戶中心頁(yè)面(perCenter.js),并將u_tel數(shù)據(jù)返回給前臺(tái)
    }
  })
};

*perCenter.js視圖頁(yè)面如下,<%=u_tel%>為ejs語(yǔ)法的定義變量,直接將后臺(tái)返回的u_tel嵌入視圖頁(yè)面中。

<div class="navBox container-fluid">
  <div class="row">
    <span class="col-lg-2 col-md-2 icon-lianxi contact alignLeft"> 010-65596969</span>
    <span class="col-lg-2 col-md-2 icon-denglu contact col-lg-push-8 col-md-push-2 alignRight"><%=u_tel%></span>    
  </div>
</div>

7.至此完成整個(gè)的登錄過(guò)程,并在用戶點(diǎn)擊了“記住密碼”后,將用戶信息寫(xiě)入cookie,并設(shè)置了cookie的過(guò)期時(shí)間?,F(xiàn)在需要完善的是,在用戶關(guān)閉了瀏覽器窗口后,cookie未過(guò)期的前提下,第二次登陸網(wǎng)站會(huì)直接顯示登錄狀態(tài),所以需要在服務(wù)器入口文件中(app.js)攔截服務(wù)器根目錄路由,并根據(jù)cookie做出判斷。

app.get("/",function(req,res){
  if(req.cookies.user){            //cookie中存在用戶信息,則直接返回登陸頁(yè)面
    res.render("perCenter",{u_tel:req.cookies.user.user})
  }else{
    res.redirect("index.html");      //否則正常顯示網(wǎng)站的index.html頁(yè)面
  }

});

*附app.js配置文件全部?jī)?nèi)容:

const express = require("express");
const app = express(); 
const session = require("express-session");
const cookie = require("cookie-parser");
const ejs = require("ejs");
const per = require("./routes/perData.js");

app.configure(function(){
  app.use(cookie());
  app.use(session({
    name:"final",
    secret:"1234567",
    cookie:{maxAge:10000},  //毫秒為單位
    resave:true,
    rolling:true
  }));
  app.set ("views",__dirname+"/views");  
  app.engine("html",ejs.__express);
  app.set("view engine","html");  
  app.use(express.logger("dev")); 
  app.use(express.bodyParser()); 
  app.use(express.methodOverride()); 
  app.use(app.router); 
  app.use(express.static(__dirname+"/public"));  
  //app.use(express.favicon(__dirname+"/public/images/favicon.ico")); 
  app.use(express.errorHandler());  
});
app.set("port",8889);

app.listen(app.get("port"),function(){
  console.log("啟動(dòng)成功"+app.get("port"))
});


/*======路由分發(fā)======*/
app.get("/",function(req,res){
  if(req.cookies.user){
    res.render("perCenter",{u_tel:req.cookies.user.user})
  }else{
    res.redirect("index.html");
  }

});
app.post("/Login.do",per.doLogin);

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解

    這篇文章主要介紹了Nodejs 數(shù)組的隊(duì)列以及forEach的應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • 一文帶你了解Node.js中的path模塊

    一文帶你了解Node.js中的path模塊

    Node.js和Python技術(shù)類似,?都致力于能夠?qū)崿F(xiàn)跨平臺(tái)的通用代碼。?為此,針對(duì)路徑的拼接,?Node.js提供了path模塊,本文就來(lái)講講path模塊的使用
    2023-03-03
  • nodejs中實(shí)現(xiàn)阻塞實(shí)例

    nodejs中實(shí)現(xiàn)阻塞實(shí)例

    這篇文章主要介紹了nodejs中實(shí)現(xiàn)阻塞實(shí)例,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-03-03
  • 使用node.js 制作網(wǎng)站前臺(tái)后臺(tái)

    使用node.js 制作網(wǎng)站前臺(tái)后臺(tái)

    本文給大家介紹實(shí)用node.js 制作網(wǎng)站前臺(tái)和后臺(tái),非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • 在Node.js中實(shí)現(xiàn)視頻列表的分頁(yè)展示功能

    在Node.js中實(shí)現(xiàn)視頻列表的分頁(yè)展示功能

    在Web應(yīng)用開(kāi)發(fā)中,展示大量數(shù)據(jù)時(shí)經(jīng)常會(huì)用到分頁(yè)功能,以提升用戶體驗(yàn)和頁(yè)面加載性能,本篇博客將介紹如何在使用Node.js和MongoDB的項(xiàng)目中實(shí)現(xiàn)視頻列表的分頁(yè)展示,文中有相關(guān)的代碼示例,需要的朋友可以參考下
    2024-04-04
  • 使用async、enterproxy控制并發(fā)數(shù)量的方法詳解

    使用async、enterproxy控制并發(fā)數(shù)量的方法詳解

    并發(fā)相信對(duì)大家來(lái)說(shuō)都不陌生,這篇文章主要給大家介紹了關(guān)于使用async、enterproxy控制并發(fā)數(shù)量的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • nodejs腳本centos開(kāi)機(jī)啟動(dòng)實(shí)操方法

    nodejs腳本centos開(kāi)機(jī)啟動(dòng)實(shí)操方法

    在本篇文章里小編給大家整理的是關(guān)于nodejs腳本centos開(kāi)機(jī)啟動(dòng)實(shí)操方法,有興趣的朋友們參考下。
    2020-03-03
  • node.js中實(shí)現(xiàn)kindEditor圖片上傳功能的方法教程

    node.js中實(shí)現(xiàn)kindEditor圖片上傳功能的方法教程

    最近在做一個(gè)類似于論壇的系統(tǒng),帖子需要進(jìn)行圖文并茂的顯示,所以用到了富文本編輯器:kindeditor,下面這篇文章主要給大家介紹了在node.js中實(shí)現(xiàn)kindEditor圖片上傳功能的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-04-04
  • node使用promise替代回調(diào)函數(shù)

    node使用promise替代回調(diào)函數(shù)

    這篇文章主要介紹了node使用promise替代回調(diào)函數(shù),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Nodejs監(jiān)控事件循環(huán)異常示例詳解

    Nodejs監(jiān)控事件循環(huán)異常示例詳解

    這篇文章主要給大家介紹了關(guān)于Nodejs監(jiān)控事件循環(huán)異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nodejs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評(píng)論

富裕县| 博爱县| 五台县| 凌云县| 务川| 长寿区| 漾濞| 荣成市| 武义县| 千阳县| 高淳县| 宁阳县| 介休市| 车险| 大安市| 江口县| 都昌县| 永靖县| 汕头市| 山阳县| 黎川县| 湖北省| 重庆市| 南陵县| 五常市| 新乐市| 武功县| 格尔木市| 固镇县| 巨野县| 香格里拉县| 平武县| 巴东县| 凤凰县| 虹口区| 沙田区| 新邵县| 工布江达县| 富平县| 格尔木市| 内江市|