命令:
cnpm install express-session --save
1.引入:let session = require('express-session');
2.配置路由:app.use(session({
secret: "keyboard cat",
cookie: {}
})); //session配置 加“盐”
3.session页面相关的路由匹配
app.use('/session', sessionRouter);
4.var sessionRouter = require('./routes/sessionModule');
app.js
let session = require('express-session');
// 输出日志
var logger = require('morgan');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var sessionRouter = require('./routes/sessionModule');
var app = express();
// view engine setup
// 视图设置
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// express中间件
app.use(session({
secret: "keyboard cat",
resave: true, //强制保存session
cookie: {},
saveUninitialized: true //是否保存初始化的session
})); //session配置 加“盐”
app.use(logger('dev')); //日志信息解析
// 请求对象解析
app.use(express.json()); //body解析
app.use(express.urlencoded({
extended: false
})); //post解析
app.use(cookieParser('secret')); //cookie解析
app.use(express.static(path.join(__dirname, 'public')));
// 如果没有静态文件,走下面
// 路由匹配
app.use('/', indexRouter);
app.use('/users', usersRouter);
// session页面相关的路由匹配
app.use('/session', sessionRouter);
sessionModule.js
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function (req, res, next) {
res.send('respond with a resource');
});
// 设置session
router.get('/setSession', (req, res) => {
// 登录之后,要能够快速获取user的姓名,vip等级,是否登录
req.session.isLogin = 'true';
req.session.username = '小明';
req.session.vipLevel = 5;
// 重置session的过期时间
req.session.cookie.maxAge = 10000;
res.send('登录状态已设置到session中');
})
router.get('/getSession', (req, res) => {
console.log(req.session);
if (req.session.isLogin == 'true') {
res.send('欢迎等级为' + req.session.vipLevel + "的" + req.session.username + "<a href='/session/exitSession'>退出登录</a>");
} else {
res.send("尚未登录");
}
req.session.isLogin;
})
// 销毁session的路由
router.get('/exitSession', (req, res) => {
req.session.destroy(() => {
console.log("销毁成功");
})
res.send("成功退出!");
})
module.exports = router;
667

被折叠的 条评论
为什么被折叠?



