Session不是一个天生就有的技术,它的使用需要依赖cookie。
session依赖cookie,当一个浏览器禁用cookie的时候,登陆效果消失; 或者用户清除了cookie,登陆也消失,session不可用。
session比cookie的不同之处
1.存放位置不同,cookie存放在客户端,session存放在服务器。
2.cookie中的数据可以看得清楚,但是session下发的是乱码,并且服务器自己缓存一些东西,下次浏览器的请求带着乱码上来,此时与缓存进行比较,看看是谁。
3.cookie的存放量小 不能大于4k,session下放的是乱码,且存在服务器,所以存放量理论上无限大。
session在node中的使用
第一步,下载express-session : npm install express-session
第二步,在服务端引入express-session
第三步,配置选项
第四步,使用session
第一次输 /bb 没有登录,新开一个页面换成 /dd 之后在刷新 /bb的页面 显示登录。
代码如下
var express=require("express")
var app=express()
//var cookieParser = require('cookie-parser')
var session=require("express-session")
app.use(express.static("public"))
//app.use(cookieParser())
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: false}
}))
app.get("/bb",function(req,res){
if(req.session.login){
res.send("欢迎"+req.session.name)
}else{
res.send("没有登录")
}
})
app.get("/dd",function(req,res){
req.session.login=true
req.session.name="zhangsan"
res.send("denglu成功")
})
app.listen(3000)