Cookie是简单的files/data,随服务器请求发送到客户端并存储在客户端,每次用户重新访问网站时,该cookie都会与请求一起发送。
要将Cookie与Express一起使用,无涯教程需要cookie解析器中间件。要安装它,请使用以下代码-
npm install --save cookie-parser
现在要在Express中使用cookie,需要 cookie-parser 。 cookie-parser是一种中间件,它解析附加到客户端请求对象 的cookie 。要使用它需要在 index.js 文件中使用它;在这里将使用以下代码。
var cookieParser=require('cookie-parser'); app.use(cookieParser());
cookie-parser解析Cookie头,并用cookie名称作为键的对象填充 req.cookies 。要设置新的Cookie,现在Express中定义新路由
var express=require('express'); var app=express(); app.get('/', function(req, res){ res.cookie('name', 'express').send('cookie set'); //Sets name=express }); app.listen(3000);
要检查您的cookie是否已设置,只需转到浏览器,启动控制台,然后输入-
console.log(document.cookie);
您将得到类似的输出-
"name=express"
浏览器每次查询服务器时也会发送回cookie。要从您的服务器查看cookie,请在路由的服务器控制台上,将以下代码添加到该路由。
console.log('Cookies: ', req.cookies);
下次向该路由发送请求时,您将收到以下输出。
Cookies: { name: 'express' }
添加过期时间
您可以添加过期的Cookie。要添加过期的cookie,只需传递一个属性为" expire"的对象 设置为您希望其过期的时间即可。如,
//自设置时间起 360000 毫秒后过期。 res.cookie(name, 'value', {expire: 360000 + Date.now()});
设置到期时间的另一种方法是使用'maxAge'属性。使用此属性,无涯教程可以提供相对时间而不是绝对时间。以下是此方法的示例。
//此 cookie 也会在设置后 360000 毫秒后过期。 res.cookie(name, 'value', {maxAge: 360000});
删除Cookie
要删除cookie,请使用clearCookie函数。如,如果您需要清除名为 foo 的cookie,请使用以下代码。
var express=require('express'); var app=express(); app.get('/clear_cookie_foo', function(req, res){ res.clearCookie('foo'); res.send('cookie foo cleared'); }); app.listen(3000);
在下一章中,无涯教程将看到如何使用cookie来管理会话。