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)
效果: