node_session

命令:

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;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值