express操作session
作为一名后端,对session和cookie应该是要非常了解,所以我这篇就来讲解一些express操作session
express-session
在express里面操作session,最常用的还是express-session模块
导入模块,并配置session
const express = require("D:/Program Files/node/node_modules/npm/node_modules/express")
const session = require("D:/Program Files/node/node_modules/express-session")
const app = express()
//然后开始配置
app.use(session({
secret:"keyboard cat",
resave:false,
cookie:{maxAge:1000*3600}, //以毫秒作为单位的
saveUninitialized:true
}))
讲解session的配置项的作用
1、secret,这个是加密字符串,就是在你原先的数据上加上这个字符串,加密和解密就成为了你独特的钥匙
2、resave,这个是用来设置你的session是否不断重置,比如你设置了过期时间是10秒,然后10秒过后就会重新把你的原先的session都恢复
3、cookie这个是用来设置过期时间的,但是是以毫秒作为单位,这里设置的全部的session都是这个时间,我暂时没有找到可以单独设置过期时间的方法,除了单独设置cookie的过期时间。
4、saveUninitialized,这个是当你的服务器运行了就会自动给你设置了一个session。
添加session值
app.get("/",function (req,res) {
req.session.test_session = "test";
res.send("设置session成功")
})
修改session值
app.get("/modify_session",function (req,res) {
req.session.test_session = "test_2"
res.send("修改成功")
})
获取session值
app.get("/session",function (req,res) {
var session_data = req.session.test_session
res.send("session值为:" + session_data);
})
重新生成一个新的session对象
app.get("/new_session",function (req,res) {
req.session.regenerate(session({
secret:"keyboard cat",
resave:false,
cookie:{maxAge:5000}, //以毫秒作为单位的
saveUninitialized:true
}))
})
### 清除所有的session
app.get("/delet_session",function (req,res) {
req.session.destroy()
res.send("删除成功")
})
删除某个session值
在express-session里面是不能按照键来删除session,它必须遵守过期时间的安排,要么就一起全部删除掉才可以。