欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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');
});