Node.js_express_临时会话对象 npm install express-session

临时会话对象 npm install express-session

npm install express-session

npm install connect-mongo

基本使用

  • const session = require('express-session');
    const MongoStore = require('connect-mongo')(session);
  • app.use(express.session({
          secret: 'keyboard cat',    //  加密字符串,参与 sessionid 加密
          saveUninitialized: false, // 在存储某东东之前,不会创建 session 对象
          resave: false, // 如果没有修改 session 对象,就不会重新保存
          store: new MongoStore({
                url: 'mongodb://localhost/test-app',    // 连接数据库的地址
                touchAfter: 24 * 3600 // 24 小时更新一次
          })
    }));
    
    ...
        // 设置 session    会在数据库中创建 session 对象
        // 保存 userId=findRet.id 到数据库
        request.session.userId = findRet.id;
    ...
        // 解析 cookie 中的 session 去数据库中找对应 sessionId 的数据
        // 返回一个 cookie
        const {userId} = request.session;
    ...
    app.use(express.session({
          secret: 'keyboard cat',    //  加密字符串,参与 sessionid 加密
          saveUninitialized: false, // 在存储某东东之前,不会创建 session 对象
          resave: false, // 如果没有修改 session 对象,就不会重新保存
          store: new MongoStore({
                url: 'mongodb://localhost/test-app',    // 连接数据库的地址
                touchAfter: 24 * 3600 // 24 小时更新一次
          })
    }));
    
    ...
        // 设置 session    会在数据库中创建 session 对象
        // 保存 userId=findRet.id 到数据库
        request.session.userId = findRet.id;
    ...
        // 解析 cookie 中的 session 去数据库中找对应 sessionId 的数据
        // 返回一个 cookie
        const {userId} = request.session;
    ...
  • session 优势

读写二合一

存储数据近乎无限大,取决于 服务器 的存储容量

传输流量小(数据传输过程中 cookie 更小更少)

  • 私有变量 _name

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

猜你喜欢

转载自www.cnblogs.com/tianxiaxuange/p/10167921.html