老莫的笔记本  
  
查看: 1205|回复: 0

Express-session的使用 ---07

[复制链接]

662

主题

878

帖子

5139

积分

超级版主

Rank: 8Rank: 8

积分
5139
发表于 2018-4-26 10:42:16 | 显示全部楼层 |阅读模式
1.安装: cnpm install express-session --save
        2.引入: var session = require('express-session')
        3.配置: app.use(session({
                                        secret:'keyboard cat',    //签名 随便写
                                        resave:true,
                                        saveUninitialized:true,
                                        cookie:{
                                           maxAge:0
                                        }
                }))
        4.使用:【1.设置值  req.session.username = 'zhangsan';】
                【2.获取值  req.session.username】
       
               
        session参数
                secret 一个 String 类型的字符串,作为服务器端生成 session 的签名。
                name 返回客户端的 key 的名称,默认为 connect.sid,也可以自己设置。(就是保存在本地cookie里的值)
                resave 强制保存 session 即使它并没有变化,。默认为 true。【建议设置成 false】。 don't save session if unmodified
                saveUninitialized 强制将未初始化的 session 存储。当新建了一个 session 且未设定属性或值时,它就处于
                        未初始化状态。在设定一个 cookie 前,这对于登陆验证,减轻服务端存储压力,权限控制是有帮助的。(默
                                认:true)。建议手动添加。【默认是true 不要改】
                cookie 设置返回到前端 key 的属性,默认值为{ path: ‘/’, httpOnly: true, secure: false, maxAge: null }。
                rolling 在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false)【设置为:true】

        5.【常用方法:】
               
                1.销毁session:        req.session.destroy(function(err){  }) ;
                2.设置session:        req.session.username='zhangsan                3.获取session:        req.session.username
                4.重新设置过期时间:        req.session.cookie.maxAge=0;


        6.服务器负载均衡:
                概念: 比方说 同一套程序,在北京 你连接北京的服务器 ,在上海你连接上海的的服务器,所以session在服务器上保存就会丢失,
                        所以就要把session保存到数据库

                第一步:搭建session 环境 看上面的
                第二步:安装 connect-mongo模块
                第三步:引入   const MongoStore = require('connect-mongo')(session);
                第四步:在session原有的配置JSON中增加一项:
                        ,store: new MongoStore({
                                url:'mongodb://127.0.0.1:27017/itying',
                                touchAfter:24 *3600
                        })
                第五步: 结束了 记得把数据库开起来。

       
                // ejs中设置[全局数据],表示所有的页面都可以使用 写在中间件里顶端的中间件
                // app.locals[]
                 例如 app.locals['userinfo'] = req.session.userinfo;

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表