express-session connect-mongo 进行持久化

Express Session的使用_c.的博客-CSDN博客_express-session

这个页面写的非常 的全,不过由于 connect-mongo版本进行了更新,所以,定义会有所不同,具体代码如下: 更改的不多

1. 就是 引入就行了更改

var  MongStore=require("connect-mongo")(session)

更改为:

var MongStore=require("connect-mongo")

2.就是中间件使用的时候,进行了更改

express 与Connect 的版本如下:

Express 4.x, 5.0 and Connect 3.x:

/*
     * 1.需要安装 express-session 和 connect-mongo 模块

     cnpm install express-session  --save

     cnpm install connect-mongo  --save


     2.引入

     var session = require("express-session");


     var  MongoStore  = require("connect-mongo")


     3.设置官方文档提供的中间件

     app.use(session({
        secret: 'keyboard cat',
         resave: false,
         saveUninitialized: true,

         store:MongoStore.create({
              mongoUrl: 'mongodb://127.0.0.1:27017/student',数据库的地址
             touchAfter: 24 * 3600   time period in seconds
         })


     }))


     4.使用

     设置值
     req.session.username = "张三";

     获取值 req.session.username

     * */

     var express = require("express");
     var app = express();
 
     var session = require("express-session");
 
 
     //var  MongoStore  = require("connect-mongo")(session);
     const MongoStore = require('connect-mongo');
 
     //配置中间件
     app.use(session({
         secret: 'this is string key',   // 可以随便写。 一个 String 类型的字符串,作为服务器端生成 session 的签名
         name:'session_id',/*保存在本地cookie的一个名字 默认connect.sid  可以不设置*/
         resave: false,   /*强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false。*/
         saveUninitialized: true,   //强制将未初始化的 session 存储。  默认值是true  建议设置成true
         cookie: {
             maxAge:1000*30*60    /*过期时间*/
 
         },   /*secure https这样的情况才可以访问cookie*/
         rolling:true,//在每次请求时强行设置 cookie,这将重置 cookie 过期时间(默认:false)
         store:MongoStore.create({
                  mongoUrl: 'mongodb://127.0.0.1:27017/student',  //数据库的地址
              
                 //ouchAfter: 24 * 3600   //time period in seconds  通过这样做,设置touchAfter:24 * 3600,您在24小时内只更新一次会话,不管有多少请求(除了在会话数据上更改某些内容的除外)
         })
 
 
     }))
 
 
     app.get("/",function(req,res){
 
         //获取sesssion
 
         if(req.session.userinfo){  /*获取*/
             res.send('你好'+req.session.userinfo+'欢迎回来');
 
         }else{
 
             res.send('未登录');
         }
 
 
 
     });
 
     app.get("/login",function(req,res){
 
 
         req.session.userinfo='张三222';
         res.send('登录成功');
     });
 
     app.get("/loginOut",function(req,res){
 
         //req.session.cookie.maxAge=0;  /*改变cookie的过期时间*/
 
 
       //销毁
         req.session.destroy(function(err){
             console.log(err);
         })
         res.send('退出登录成功');
     });
 
     app.get("/news",function(req,res){
 
         //获取sesssion
 
 
         if(req.session.userinfo){  /*获取*/
             res.send('你好'+req.session.userinfo+'欢迎回来 news');
 
         }else{
 
             res.send('未登录 news');
         }
 
 
 
     });
 
     app.listen(3300,(err)=>{
        console.log("运行成功")
     });

特此记录,参考的官方文档,链接如下:

express-connect官方文档

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值