Express学习9--在服务器端获取和删除cookie
程序员文章站
2022-07-13 13:11:36
...
在服务器端获取cookie
手动解析cookie
向服务器发送的请求中会自动携带cookie,具体来说它会在req.headers.cookie中保存。
要注意取到的cookie中只包括键值对,而cookies的属性(如过期时间)是看不到的。
req.headers.cookie; // isLogin=true; name=xsfss
这个字符中包含了全部的cookie,为了把它们的值解析出来成一个对象,可以通过node的核心对象querystring来进行解析。
// 1. 把; 替换成&,以让querystring能够解析
let cookiestr = req.headers.cookie.replace('; ', '&');
console.log(req.headers.cookie);
console.log(cookiestr);
// 2 解析成对象
let cookieObj = qs.parse(cookiestr);
let { isLogin, name } = cookieObj;
使用cookie-parser进行解析
如果想快速解析cookie,则可以使用cookie-parser这个包。
先安装:
npm install cookie-parser
再使用:
var cookieParser = require('cookie-parser');
app.use(cookieParser());
// 某个具体的路由回调函数中,cookies会以对象的格式保存在req对象中
console.log(req.cookies);
从服务器端删除cookie
express框架提供了一个删除方法。从服务器端删除:
app.get('/quit', (req, res) => {
res.clearCookie('name');
res.clearCookie('isLogin');
res.redirect('/login.html');
});
上一篇: node-crawler爬虫实践
下一篇: jQuery选择器