- ExpressJS 教程
- ExpressJS - 首页
- ExpressJS - 概述
- ExpressJS - 环境
- ExpressJS - Hello World
- ExpressJS - 路由
- ExpressJS - HTTP 方法
- ExpressJS - URL 构建
- ExpressJS - 中间件
- ExpressJS - 模板引擎
- ExpressJS - 静态文件
- ExpressJS - 表单数据
- ExpressJS - 数据库
- ExpressJS - Cookie
- ExpressJS - Session
- ExpressJS - 身份验证
- ExpressJS - RESTful API
- ExpressJS - 脚手架
- ExpressJS - 错误处理
- ExpressJS - 调试
- ExpressJS - 最佳实践
- ExpressJS - 资源
- ExpressJS 有用资源
- ExpressJS - 快速指南
- ExpressJS - 有用资源
- ExpressJS - 讨论
ExpressJS - Cookie
Cookie 是简单的、小型的文件/数据,随服务器请求发送到客户端并在客户端存储。每次用户重新加载网站时,都会将此 Cookie 与请求一起发送。这有助于我们跟踪用户的操作。
以下是 HTTP Cookie 的多种用途:
- 会话管理
- 个性化(推荐系统)
- 用户追踪
要在 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' 属性设置为要过期的时间。例如:
//Expires after 360000 ms from the time it is set. res.cookie(name, 'value', {expire: 360000 + Date.now()});
另一种设置过期时间的方法是使用 **'maxAge'** 属性。使用此属性,我们可以提供相对时间而不是绝对时间。以下是此方法的一个示例。
//This cookie also expires after 360000 ms from the time it is set. 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 管理会话。