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

Vue+Node實(shí)現(xiàn)的商城用戶管理功能示例

 更新時(shí)間:2019年12月23日 08:41:08   作者:theVicTory  
這篇文章主要介紹了Vue+Node實(shí)現(xiàn)的商城用戶管理功能,結(jié)合實(shí)例形式詳細(xì)分析了商城用戶管理的前臺(tái)登錄、校驗(yàn)、跳轉(zhuǎn)、退出等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Vue+Node實(shí)現(xiàn)的商城用戶管理功能。分享給大家供大家參考,具體如下:

1、用戶登陸

前端將用戶輸入的用戶名密碼post發(fā)送到后端,如果返回status=0,代表登陸成功,將hasLogin置為true,控制頁(yè)面登陸按鈕不顯示,并顯示返回的用戶名nickname

   login(){
     if(!this.username||!this.password){
      this.errMsg="請(qǐng)輸入用戶名與密碼!";
      this.errShow=true;
     }else{
      axios.post('/users/login',{
       username:this.username,
       password:this.password
      }).then((response,err)=>{
       let res=response.data;
       if(res.status===0){
        this.hasLogin=true;
        this.nickname=res.result;
        this.closeLogin();
       }else{
        this.errShow=true;
        this.errMsg=res.msg;
       }
      })
     }
    },

后端根據(jù)前端傳來(lái)的用戶名、密碼在數(shù)據(jù)庫(kù)中查找指定條目,查詢成功返回status=0,并設(shè)置res的cookie保存用戶名與Id

router.post('/login', function(req, res, next) {
 let username=req.body.username;
 let password=req.body.password;
 let params={
  userName:username,
  userPwd:password
 };
 user.findOne(params,(err,userDoc)=>{
  "use strict";
  if(err){
   res.json({
    status:1,
    msg:err.message
   })
  }else {
   if(userDoc){
    //登陸成功后設(shè)置res.cookie與req.session
    res.cookie('userId',userDoc.userId,{
     maxAge:1000*60*60
    });
    res.cookie('userName',userDoc.userName,{
     maxAge:1000*60*60
    });
    res.json({
     status:0,
     msg:'登陸成功',
     result:userDoc.userName
    });
   }else{
    res.json({
     status:1,
     msg:'用戶名或密碼錯(cuò)誤!'
    });
   }
  }
 })
});

2、服務(wù)器Express全局?jǐn)r截

一些內(nèi)容在用戶未登錄是無(wú)法訪問(wèn)的,需要服務(wù)器對(duì)非法請(qǐng)求進(jìn)行攔截。在nodejs中請(qǐng)求先到達(dá)app.js文件,然后再轉(zhuǎn)發(fā)到指定路由。在轉(zhuǎn)發(fā)之前,可以先對(duì)用戶登陸狀態(tài)進(jìn)行判斷,如果cookies中有設(shè)置userId,表明已登陸,執(zhí)行下一步next()。如果未登錄,只可以訪問(wèn)指定的路由路徑,由req.originalUrl判斷是否等于或包含允許的訪問(wèn)路徑,用戶在未登錄時(shí)可以訪問(wèn)登陸頁(yè)面與商品列表頁(yè)面。如果訪問(wèn)其他路徑則返回錯(cuò)誤信息“用戶未登錄”:

//全局?jǐn)r截
app.use(function (req,res,next) {
 if(req.cookies.userId) next();    //已登陸
 //未登錄,只能訪問(wèn)登錄與商品頁(yè)面
 else if(req.originalUrl==='/users/login'||req.originalUrl.indexOf('/goods')>-1) next();
 else{
  res.json({
   status:3,
   msg:'用戶未登錄'
  })
 }
});

//路由跳轉(zhuǎn)
app.use('/', index);
app.use('/users', users);
app.use('/goods', goods);

3、校驗(yàn)登陸

在頁(yè)面加載完成后,需要判斷用戶是否已經(jīng)登陸過(guò)了,前端向后端發(fā)出checkLogin的請(qǐng)求,后端根據(jù)cookie中的userId是否設(shè)置,返回判斷信息,如果登陸則不需要用戶再次手動(dòng)登陸了

router.get('/checkLogin',(req,res)=>{
 "use strict";
 if(req.cookies.userId){      //設(shè)置了cookie,用戶已登陸
  res.json({
   status:0,
   msg:"登錄成功",
   username:req.cookies.userName
  })
 }else {
  res.json({
   status:3,
   msg: "未登錄"
  })
 }
});

4、登出

用戶的登出操作就是將cookie信息去除,即在后臺(tái)將用戶cookie的有效期置為0

router.get('/logout',(req,res)=>{
 "use strict";
 res.cookie('userId','',{maxAge:0});
 res.cookie('userName','',{maxAge:0});
 res.json({
  status:0,
  msg:'登出成功!'
 })
});

希望本文所述對(duì)大家node.js程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 初學(xué)者如何快速搭建Express開(kāi)發(fā)系統(tǒng)步驟詳解

    初學(xué)者如何快速搭建Express開(kāi)發(fā)系統(tǒng)步驟詳解

    這篇文章主要介紹了初學(xué)者如何快速搭建Express開(kāi)發(fā)系統(tǒng),結(jié)合實(shí)例形式詳細(xì)分析了express框架搭建的具體步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2023-05-05
  • express框架,報(bào)錯(cuò):“Cannot set headers after they are sent to the client”,解決方法總結(jié)

    express框架,報(bào)錯(cuò):“Cannot set headers after t

    這篇文章主要介紹了express框架,報(bào)錯(cuò):“Cannot set headers after they are sent to the client”,解決方法,結(jié)合實(shí)例形式總結(jié)分析了常見(jiàn)的問(wèn)題原因與對(duì)應(yīng)的解決方案,需要的朋友可以參考下
    2023-05-05
  • npm安裝依賴報(bào)錯(cuò)ERESOLVE?unable?to?resolve?dependency?tree的解決方法

    npm安裝依賴報(bào)錯(cuò)ERESOLVE?unable?to?resolve?dependency?tree的解決方

    當(dāng)我們拿到一個(gè)前端項(xiàng)目的時(shí)候,想要把它運(yùn)行起來(lái),首先是要給它安裝依賴,下面這篇文章主要給大家介紹了關(guān)于npm安裝依賴報(bào)錯(cuò)ERESOLVE?unable?to?resolve?dependency?tree的解決方法,需要的朋友可以參考下
    2023-04-04
  • NodeJS 創(chuàng)建目錄和文件的方法實(shí)例分析

    NodeJS 創(chuàng)建目錄和文件的方法實(shí)例分析

    這篇文章主要介紹了NodeJS 創(chuàng)建目錄和文件的方法,涉及node.js中fs模塊mkdir、writeFile及目錄判斷existsSync等方法的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2023-04-04
  • 在Node.js中執(zhí)行解壓縮文件操作方法

    在Node.js中執(zhí)行解壓縮文件操作方法

    本文主要介紹了如何在Node.js中進(jìn)行解壓縮文件操作,本文也提供了壓縮文件的方法,壓縮文件的文件路徑需要對(duì)應(yīng)自己要壓縮的文件夾路徑,通過(guò)本文的介紹,可以幫助讀者更好地理解和使用Node.js進(jìn)行解壓縮文件操作
    2024-10-10
  • Nodejs進(jìn)階:核心模塊net入門學(xué)習(xí)與實(shí)例講解

    Nodejs進(jìn)階:核心模塊net入門學(xué)習(xí)與實(shí)例講解

    本篇文章主要是介紹了Nodejs之NET模塊,net模塊是同樣是nodejs的核心模塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • nvm如何查看node版本

    nvm如何查看node版本

    文章介紹了如何使用nvm查看Node.js版本,并解決了由于舊淘寶鏡像廢棄導(dǎo)致的命令無(wú)效問(wèn)題,解決方法是在nvm的setting文件中添加特定代碼
    2024-12-12
  • Node的stream數(shù)據(jù)流你了解嗎

    Node的stream數(shù)據(jù)流你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Node的stream數(shù)據(jù)流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • 深入解析koa之異步回調(diào)處理

    深入解析koa之異步回調(diào)處理

    這篇文章主要介紹了深入解析koa之異步回調(diào)處理,我們研究一下koa當(dāng)中異步回調(diào)同步化寫法的原理,同樣的,我們也會(huì)實(shí)現(xiàn)一個(gè)管理函數(shù),是的我們能夠通過(guò)同步化的寫法來(lái)寫異步回調(diào)函數(shù)。,需要的朋友可以參考下
    2019-06-06
  • pnpm的安裝和使用指南(推薦!)

    pnpm的安裝和使用指南(推薦!)

    如果你覺(jué)得npm比較慢,又不想用yarn,那么pnpm是一個(gè)很好的選擇,下面這篇文章主要給大家介紹了關(guān)于pnpm的安裝和使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05

最新評(píng)論

淮北市| 保靖县| 灵川县| 简阳市| 无棣县| 桦川县| 阿尔山市| 卢氏县| 祥云县| 小金县| 西吉县| 田林县| 马龙县| 凌云县| 东海县| 龙江县| 修文县| 东辽县| 万安县| 新巴尔虎右旗| 西乡县| 怀安县| 元谋县| 甘孜| 开化县| 大方县| 唐河县| 德化县| 霍山县| 通化市| 岳阳市| 大连市| 大安市| 仲巴县| 汤原县| 南溪县| 淳化县| 东阿县| 雅安市| 象山县| 平利县|