一、安装cookie
相关的模块
- 1、
npm install cookie-parser
二、在app.js
文件中配置cookie
相关的内容
1、引入模块文件
//引入cookie文件 const cookieParser = require("cookie-parser");
2、设置密钥
//设置cookie,其中()里面的是密钥,随便写 app.use(cookieParser("aaa"))
三、在路由文件中使用(注意先发送cookie
在做别的)
1、路由文件
router.get("/article", (req, res) => { //发送cookie(名称,数据,过期时间) res.cookie("login",{"name":"abc"},{maxAge:1000*60*60*24}); if (req.cookies["login"]){ //一种新的发送数据到前端页面 res.locals.login = req.cookies.login.name; } res.render("article.ejs"); })
2、前端模板接收发送过来的数据及前端利用脚本获取
cookie
<p><%=locals.login%></p>
<script> window.onload = function () { //前端页面获取cookie console.log(document.cookie); } </script>
3、可以在谷歌浏览器输入
url
地址旁边的一个被圈住的感叹号中查看cookie
的过期时间
四、全局设置cookie
让views
里面所有的页面都可以获取到cookie
1、在
app.js
中使用use
标签(use
不管是get
还是post
都可以进去),但是使用这个标签要注意一定要使用next
往下执行app.use((req,res,next)=>{ if (req.cookies.login){ res.locals.login = req.cookies.login.name; } //不管怎么样都往下执行 next(); })
2、在任何页面中都可以获取到
login
变量<p><%=locals.login%></p>
五、关于清除cookie
的方法
1、使用
ajax
请求清除cookie
router.post("/clearcookie",(req,res)=>{ //清除cookie,写上cookie名字 res.clearCookie("login"); res.json({ code:1, info:"清除成功" }) })
2、前端
ajax
请求$("#btn").on("click",function () { $.ajax({ type:"post", url:"/clearcookie", success:function (data) { console.log(data); } }) })
六、安装session
模块
- 1、
npm install cookie-parser --save
七、在主文件app.js
中配置session
相关信息
1、引入刚刚安装的
session
包//引入session模块 const session = require("express-session");
2、给
session
设置密钥//给session设置密钥 app.use(session({secret:"bbb"}));
八、在路由文件中使用session
1、设置
session
,设置后可以在任何的视图路由中使用到session
router.post("/clearcookie",(req,res)=>{ //设置session,由于session是存在服务器端的,所以不是用res返回给前端页面 req.session.sessionName = "abcef"; })
2、获取
session
router.get("/", (req, res) => { console.log("获取到的session:"+req.session.sessionName); //获取session res.locals.name = req.session.sessionName; res.render("03_index.ejs"); });
3、由于
session
存放在服务器端,所以当浏览器关闭后就会自动清除的,不需要手动清除