在 Web 开发中,cookie 是一项非常重要的技术,它可以用于存储用户的信息,如用户名、浏览历史、购物车等。在 Express.js 中使用 cookie 是非常简单的。本文将介绍如何使用 cookie,并提供一些示例代码。
什么是 cookie?
在 Web 开发中,cookie 是一种用于存储数据的机制。它通常被用来存储与用户相关的数据,例如登录信息、购物车、浏览历史等。cookie 通常是通过浏览器发送给服务器的,并被服务器用于识别用户和维护会话。
设置和读取 cookie
在 Express.js 中,可以使用 res.cookie()
方法设置 cookie,如下所示:
app.get('/', function(req, res) { res.cookie('username', 'john_doe'); res.send('Cookie has been set'); });
上面的代码将设置一个名为 username 的 cookie,其值为 john_doe。在客户端访问路由时,服务器将在响应头中添加 Set-Cookie 头部信息,告诉浏览器存储 cookie。
要读取 cookie,可以使用 req.cookies
对象,如下所示:
app.get('/', function(req, res) { var username = req.cookies.username; res.send('Username is: ' + username); });
上面的代码将从客户端的 cookie 中读取 username,并将其发送到客户端。
设置 cookie 的过期时间
默认情况下,cookie 是会话级别的,这意味着它们存在于浏览器关闭时,或者服务器重启时会被删除。但是,可以通过设置 cookie 的过期时间来控制 cookie 的生命周期,如下所示:
app.get('/', function(req, res) { res.cookie('username', 'john_doe', { maxAge: 900000 }); // 900000 毫秒后 cookie 过期 res.send('Cookie has been set'); });
使用 signed cookie
使用 signed cookie 可以防止 cookie 被篡改。对于需要保证数据安全的应用程序,使用 signed cookie 是非常重要的。要使用 signed cookie,需要在应用程序中配置一个 secretkey,如下所示:
app.use(cookieParser('MY_SECRET_KEY')); // 设置 secret key
使用 res.cookie()
方法设置一个 signed cookie,如下所示:
app.get('/', function(req, res) { res.cookie('username', 'john_doe', { signed: true }); // 设置 signed cookie res.send('Cookie has been set'); });
要读取 signed cookie,可以使用 req.signedCookies
对象,如下所示:
app.get('/', function(req, res) { var username = req.signedCookies.username; res.send('Username is: ' + username); });
删除 cookie
可以使用 res.clearCookie()
方法删除 cookie,如下所示:
app.get('/clearcookie', function(req, res) { res.clearCookie('username'); res.send('Cookie has been cleared'); });
上面的代码将从客户端删除名为 username 的 cookie。
总结
在 Express.js 中,使用 cookie 是非常简单的。可以使用 res.cookie()
方法设置 cookie,使用 req.cookies
对象读取 cookie,使用 signed cookie 来保证数据安全。通过本文的介绍和示例代码,相信读者已经掌握了 cookie 的基本使用方法,并可以使用 cookie 存储用户数据。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64953a1d48841e989427a610