Cookie是简单的小文件/数据,通过服务器请求发送到客户端并存储在客户端.每次用户加载网站时,都会随请求一起发送此cookie.这有助于我们跟踪用户的操作.
以下是HTTP Cookies的大量用途 :
会话管理
个性化(推荐系统)
用户追踪
要在Express中使用cookie,我们需要cookie-parser中间件.要安装它,请使用以下代码 :
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);
您将获得类似的输出(您可能因浏览器中的扩展而设置了更多的Cookie) :
"name = express"
浏览器每次查询服务器时都会发回cookie.要从服务器查看cookie,请在路由中的服务器控制台上,将以下代码添加到该路由.
console.log('Cookies: ', req.cookies);
下次向此路线发送请求时,您将收到以下输出.
Cookies:{name:'express'}
添加有效期限的Cookie
你可以添加过期的cookie.要添加过期的cookie,只需将属性"expire"的对象设置为您希望它到期的时间.例如,
//自设置之后360000毫秒后过期. res.cookie(name,'value',{expire:360000 + Date.now()});
另一种设置到期时间的方法是使用'maxAge'属性.使用此属性,我们可以提供相对时间而不是绝对时间.以下是此方法的示例.
//此cookie也会在设置之后360000毫秒后过期. res.cookie(name, 'value', {expire: 360000 + Date.now()});
删除现有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来管理会话.