一点点进击前端--vue3.0资金权限管理系统

文章说明

本文主要是对我在b站上学的一个视频的一个笔记记录

初始化项目

在这里插入图片描述
创建入口文件index.js
在这里插入图片描述
全局安装nodemon(实现后台热部署)

cnpm install nodemon -g
在这里插入图片描述
在这里插入图片描述

热部署的启动方式

npm run server

需要安装的依赖

npm install express  # node的服务器插件
npm install bcrypt   # 给密码进行加密的插件
npm install express
npm install express
npm install express
npm install express
npm install express

想mongo db中出入数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//注册接口
router.post('/register',(req,res)=>{
    User.findOne({email:req.body.email})
        .then((user)=>{
            if(user){
                return res.status(400).json('邮箱已被注册!')
            }else{
               // const url = gravatar.url(req.body.email, {s: '200', r: 'pg', d: 'mm'});
                const newUser = new User({
                    name:req.body.name,
                    email:req.body.email,
                    password:req.body.password,
                    identity:req.body.identity
                })
                //密码加密
                bcrypt.genSalt(10, function(err, salt) {
                    bcrypt.hash(newUser.password, salt, (err, hash)=> {
                        if(err) throw err;
                        newUser.password = hash;
                        newUser.save()
                            .then(user=>res.json(user))
                            .catch(err=>console.log(err))
                    });
                });
            }
        })
})

使用jwt(token方式进行登录)

 //jwt.sign("规则","加密名字(密钥)","过期时间","箭头函数")
   jwt.sign(rule,'secret',{ expiresIn:3600 },(err,token)=>{}

原来项目的网站地址

https://github.com/ly1994lyy/vue-node-manager

后台测试地址

前台项目搭建

vue create client
在这里插入图片描述

在这里插入图片描述

使用body-parser遇到的坑

extended选项允许是使用nodejs的内置内置对象querystring来解析字符串----它只能解析简单的字符串(如键值对,不能解析对象字符串),而qs它是querystring的升级版,能解析复杂的对象字符串
但是我们需要设置extend的值为false,以为默认是使用querystring来解析参数的

querystring.parse("name=henry&age=30") => { name: 'henry', age: '30' }
     //解析出来的结果正确,结果也是我们想要的
querystring.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding") => 
  { 
    'info[name]': 'henry',
    'info[age]': '30',
    'hobby[1]': 'sport',
    'hobby[2]': 'coding'
  }
//解析出来的结果错误,结果并非我们想要的

qs.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding") => 
  {
    info: {
      name: 'henry',
      age: '30'
    },
    hobby: [ 'sport', 'coding' ]
  }
  //解析出来的结果正确,结果是我们想要的

携带token进行测试

在这里插入图片描述

localstorage和cookie的区别

localstorage是5M,永久存储,可存于磁盘,也可存于内存(敏感性信息–就在本次会话生效就好了,放在sessionStorage里面)
h5用了localstorage取代了cookie

权限管理细粒化到按钮

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值