ExpressJs--负载均衡配置 Session,把 Session 保存到数据库 里面

时间:2019-02-16
本文章向大家介绍ExpressJs--负载均衡配置 Session,把 Session 保存到数据库 里面,主要包括ExpressJs--负载均衡配置 Session,把 Session 保存到数据库 里面使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

session默认的是将数据保存到服务的文件中,可能我们的服务器压力大就不能保存数据会使数据丢失;这是这里我们想将数据保存到数据库中,以便于不同服务器来访问数据不会丢失 达到共享数据。

需要保证你的数据库是开启的

使用步骤:
1.需要安装 express-session 和 connect-mongo 模块

npm install express-session --save

npm install connect-mongo --save

2.引入模块

var session = require("express-session");
const MongoStore = require('connect-mongo')(session);

3.配置中间件

app.use(session({
      secret: 'keyboard cat',
      resave: false,
      saveUninitialized: true,
      rolling:true,
      cookie:{
            maxAge:100000
      },
      store: new MongoStore({
            url: 'mongodb://127.0.0.1:27017/student',//连接数据库的地址将数据存储到哪个库中,并在这个数据库中生成一个sessions聚合
            touchAfter: 24 * 3600, // time period in seconds
       })
}))

案例:

sessionMongodb.js

let express = require('express');
let app = express();
let session = require('express-session');
const MongoStore = require('connect-mongo')(session);
// 配置中间件
app.use(session({
    secret:'keyboard cat',
    resave:false,
    saveUninitialized:true,
    rolling:true,
    cookie:{
        maxAge:1000*60*10
    },
    store: new MongoStore({
        url: 'mongodb://127.0.0.1:27017/student',//连接数据库的地址将数据存储到哪个库中,并在这个数据库中生成一个sessions聚合
        touchAfter: 24 * 3600, // time period in seconds
    })
}))
// 获取session
app.get('/',(req,res) => {
    res.send('获取session的值为:'+req.session.username)
})
// 设置session
app.get('/set',(req,res) => {
    req.session.username = '小红红红';
    res.send('设置session成功!')
})

app.listen(8013)

效果: