cookie和session

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值