Vue+Node实现的商城用户管理功能示例

 更新时间:2019年12月23日 08:41:08   作者:theVicTory  
这篇文章主要介绍了Vue+Node实现的商城用户管理功能,结合实例形式详细分析了商城用户管理的前台登录、校验、跳转、退出等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Vue+Node实现的商城用户管理功能。分享给大家供大家参考,具体如下:

1、用户登陆

前端将用户输入的用户名密码post发送到后端,如果返回status=0,代表登陆成功,将hasLogin置为true,控制页面登陆按钮不显示,并显示返回的用户名nickname

   login(){
     if(!this.username||!this.password){
      this.errMsg="请输入用户名与密码!";
      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;
       }
      })
     }
    },

后端根据前端传来的用户名、密码在数据库中查找指定条目,查询成功返回status=0,并设置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){
    //登陆成功后设置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:'用户名或密码错误!'
    });
   }
  }
 })
});

2、服务器Express全局拦截

一些内容在用户未登录是无法访问的,需要服务器对非法请求进行拦截。在nodejs中请求先到达app.js文件,然后再转发到指定路由。在转发之前,可以先对用户登陆状态进行判断,如果cookies中有设置userId,表明已登陆,执行下一步next()。如果未登录,只可以访问指定的路由路径,由req.originalUrl判断是否等于或包含允许的访问路径,用户在未登录时可以访问登陆页面与商品列表页面。如果访问其他路径则返回错误信息“用户未登录”:

//全局拦截
app.use(function (req,res,next) {
 if(req.cookies.userId) next();    //已登陆
 //未登录,只能访问登录与商品页面
 else if(req.originalUrl==='/users/login'||req.originalUrl.indexOf('/goods')>-1) next();
 else{
  res.json({
   status:3,
   msg:'用户未登录'
  })
 }
});

//路由跳转
app.use('/', index);
app.use('/users', users);
app.use('/goods', goods);

3、校验登陆

在页面加载完成后,需要判断用户是否已经登陆过了,前端向后端发出checkLogin的请求,后端根据cookie中的userId是否设置,返回判断信息,如果登陆则不需要用户再次手动登陆了

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

4、登出

用户的登出操作就是将cookie信息去除,即在后台将用户cookie的有效期置为0

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

希望本文所述对大家node.js程序设计有所帮助。

相关文章

  • 详解基于Node.js的HTTP/2 Server实践

    详解基于Node.js的HTTP/2 Server实践

    HTTP/2目前已经逐渐的在各大网站上开始使用,这篇文章主要介绍了详解基于Node.js的HTTP/2 Server实践,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • node学习笔记之读写文件与开启第一个web服务器操作示例

    node学习笔记之读写文件与开启第一个web服务器操作示例

    这篇文章主要介绍了node学习笔记之读写文件与开启第一个web服务器操作,结合实例形式分析了nodejs文件读写及创建web服务接收request请求与处理相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • node中实现删除目录的几种方法

    node中实现删除目录的几种方法

    这篇文章主要介绍了node中实现删除目录的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Nodejs抓取html页面内容(推荐)

    Nodejs抓取html页面内容(推荐)

    这篇文章主要介绍了Nodejs抓取html页面内容的关键代码,另外还给大家附上了nodejs抓取网页内容,非常不错,对node.js抓取页面内容感兴趣的朋友一起学习吧
    2016-08-08
  • nodejs和C语言插入mysql数据库乱码问题的解决方法

    nodejs和C语言插入mysql数据库乱码问题的解决方法

    这篇文章主要介绍了nodejs和C语言插入mysql数据库乱码问题,需要的朋友可以参考下
    2017-04-04
  • 如何利用node实现静态文件缓存详解

    如何利用node实现静态文件缓存详解

    HTTP 缓存机制作为 Web 应用性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系的基础环节,也是想要成为前端架构的必备技能,这篇文章主要给大家介绍了关于如何利用node实现静态文件缓存的相关资料,需要的朋友可以参考下
    2021-07-07
  • Node.js实现文件上传

    Node.js实现文件上传

    这篇文章主要介绍了Node.js实现文件上传的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Nodejs极简入门教程(一):模块机制

    Nodejs极简入门教程(一):模块机制

    这篇文章主要介绍了Nodejs极简入门教程(一):模块机制,本文讲解了模块基础知识、模块的加载、包等内容,需要的朋友可以参考下
    2014-10-10
  • angularjs表格ng-table使用备忘录

    angularjs表格ng-table使用备忘录

    这篇文章主要为大家分享了angularjs表格ng-table使用备忘录,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Nodejs中怎么实现函数的串行执行

    Nodejs中怎么实现函数的串行执行

    今天小编就为大家分享一篇关于Nodejs中怎么实现函数的串行执行,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03

最新评论