ExpressJs--session的使用

一、Session 简单介绍
session 是另一种记录客户状态的机制,不同的是 Cookie 保存在客户端浏览器中,而 session 保存在服务器上。

浏览器已关闭就销毁,也可以在同域名下共享数据。
Session 的用途:
session 运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存。
当客户访问其他页面时,可以判断客户的登录状态,做出提示,相当于登录拦截。
session 可以和 Redis 或者数据库等结合做持久化操作,当服务器挂掉时也不会导致某些客户信息(购物车)
丢失。

二、Session 的工作流程
当浏览器访问服务器并发送第一次请求时,服务器端会创建一个 session 对象,生成一个类似于
key,value 的键值对,然后将 key(cookie)返回到浏览器(客户)端,浏览器下次再访问时,携带 key(cookie),
找到对应的 session(value)。 客户的信息都保存在 session 中


三、express-session 的使用:
1.安装 express-session

npm install express-session --save

2.引入 express-session

var session = require("express-session")

3.设置官方文档提供的中间件

app.use(session({
      secret: 'keyboard cat',
      resave: true,
      saveUninitialized: true
}))

4.使用

设置值 req.session.username = "张三";
获取值 req.session.username

四、express-session 的常用参数:

五、express-session 的常用方法:

req.session.destroy(function(err) { /*销毁 session*/


})
req.session.username='张三'; //设置 session
req.session.username //获取 session
req.session.cookie.maxAge=0; //重新设置 cookie 的过期时间

案例:

session.js

let express = require('express');
let app = express();
let session = require('express-session')
// 配置中间件
app.use(session({
    secret:'keyboard cat',
    resave:false,
    saveUninitialized:true
}))
// 获取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(8012)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值