01.cookie和session的区别
02.cookie
使用步骤:
- 下载包
npm install cookie-parser -S
- 引入包
var cookieParser=require('cookie-parser')
- 配置app可以使用包(借助express)
app.use(cookieParser())
书写cookie:
res.cookie('cookie名字',cookie的值,{maxAge:设置cookie存在的时间})
res.cookie('user',req.query.username,{maxAge:100000});
cookie名字为user
cookie值为req.query.username(前端输入的用户名)
cookie存在的时间为1000*100=100000=100秒
获取cookie
req.cookies.cookie名字
req.cookies.user
获取名为user的cookie的值
03.在浏览器中写入cookie
前台:
后台:
const express=require('express');
const app=express();
// 引入处理cookie的包
var cookieParser=require('cookie-parser');
// 配置app可以使用cookie
app.use(cookieParser())
app.use('/',express.static('./views/'));
app.use('/public',express.static('./public/'))
app.get('/login',(req,res)=>{
//如果cookie不存在书写cookie
if(!req.cookies.username){
res.cookie('user',req.query.username,{maxAge:100000});
}
res.send('cookie书写成功');
})
//获取刚才写入的cookie
app.get('/get',(req,res)=>{
res.send(req.cookies.user?req.cookies.user:'cookie不存在');
})
app.listen('8989');
前端ajax:
//失去焦点的时候发起ajax请求
$('input').blur(()=>{
$.ajax({
url:'http://localhost:8989/login',
data:{
username:$("input").val()
},
success(res){
console.log(res);
$("h1").html(res);
}
});
});
实现:写入cookie test-cookie
获取刚才写入的cookie:
04.session
使用步骤:
- 下载包
npm install express-session -S
- 引入包
const session=require('express-session')
- 配置可以使用session(配合express)
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie:{
// 设置时长ms
maxAge:60000
}
}))
书写session
req.session.session名字='session的值'
req.session.user='test'
session的名字是user
session的值是test
获取session
req.session.session名字
req.session.user
获取名为user的session的值
session持久化
- session默认存储在服务器上,如果不做特殊处理,关闭服务器,session会消失
- 可以配置session持久化解决
配置session持久化
- 下载包 npm install nedb-session-store -S
- 引入包
const nedbstore=require('nedb-session-store')(session)
- 在配置session中配置持久化
filename:存储的session地址 名字可以自定义
持久化配置成功运行时会生成filename中自定义的文件
05.服务器端写入session
const express=require('express');
const app=express();
//引入包使用session
const session=require('express-session');
//引入session持久化的包
const nedbstore=require('nedb-session-store')(session);
app.use(session({
secret:'keyboard cat',
resava:false,
saveUninitialized:true,
cookie:{
maxAge:1000*10
},
//配置持久化
store:new nedbstore({
filename:'test.db'
})
}));
//写入值为 写入session 的session
app.get('/write',(req,res)=>{
req.session.name='写入的session';
res.send('session配置成功');
});
//获取刚才写入的session
app.get('/get',(req,res)=>{
res.send('获取配置的session:'+req.session.name);
});
app.listen('8989');
写入session:
获取session
2021.01.09 09:11