nodejs自学之旅(4)—— cookie的使用

关于nodejs自学的章节,本章是倒数第二章,预告一下后面的内容,关于model对象的增删改查,也就是数据库的几种基本操作,还有就是分页操作。算是一些比较常规的操作,学完后开启vue.js自学的章节。完成三项自学后会开始搭建全景图web平台。

本章要用到一个常用的功能,就是cookie,cookie对象保存在浏览器中,这为很多操作提供了便利,如用户首次登陆后,可以通过cookie记住该用户的一些信息,以供后续的操作使用。补充一个事情:我的第一个项目是学生团体自己搞的,登录之后,后面的接口老让我传用户名参数方便他去查询,烦得要死,吐槽一下之前的服务端,就不能存cookie自己去取嘛!

关于cookie如何使用,首先肯定是加载cookie模块

//加载cookie模块
var Cookies = require("cookies");

加载完之后就可以创建一个实例以供使用了

app.use(function(req,res,next){
    req.cookies = new Cookies(req,res); //创建cookie实例,保存在request请求头里
    next();
})

request header里有cookie对象后,就可以在登录的时候用set方法设置cookie了

 req.cookies.set('userInfo',JSON.stringify({
                username:userInfo.username,
                password:userInfo.password,
            })
      );

设置完之后,登录成功后打开network查看


cookie存储后可以随时用get方法取出来,比如对不同的用户信息使用不同的处理方式

app.use(function(req,res,next){
    req.cookies = new Cookies(req,res);
    req.userInfo = {};
    if(req.cookies.get('userInfo')) {
        try{
            req.userInfo = JSON.parse(req.cookies.get('userInfo'));
            User.findOne({"username":req.userInfo.username}).then(function(findUserInfo){
                req.userInfo.isAdmin = Boolean(findUserInfo.isAdmin);
                next();
            })
        }catch (e){
            console.log("未知错误");
            next();
        }
    }else{
        next();
    }
})


猜你喜欢

转载自blog.csdn.net/dkr380205984/article/details/79291708