在前端开发中,cookie 是一个非常重要的概念。它可以用来存储用户的登录状态、用户的偏好设置等。在 Express.js 中,设置 cookie 是一个非常简单的操作,本文将详细介绍如何使用 Express.js 设置 cookie。
Express.js 中设置 cookie 的基本语法
在 Express.js 中,设置 cookie 的基本语法如下:
res.cookie(name, value, [options])
其中,name 表示 cookie 的名称,value 表示 cookie 的值,options 是一个可选的参数,用来设置 cookie 的一些属性,比如过期时间、域名、路径等。
设置 cookie 的示例代码
下面是一个简单的示例代码,用来演示如何在 Express.js 中设置 cookie。
// javascriptcn.com 代码示例 const express = require('express') const app = express() app.get('/', (req, res) => { // 设置 cookie res.cookie('username', 'john') res.send('cookie 设置成功') }) app.listen(3000, () => { console.log('服务器已启动') })
在上面的代码中,我们使用了 res.cookie
方法来设置一个名为 username
,值为 john
的 cookie。在浏览器中访问该网站时,我们可以在浏览器的开发者工具中看到这个 cookie。
设置 cookie 的属性
除了设置 cookie 的名称和值之外,我们还可以通过 options
参数来设置 cookie 的属性。下面是一些常见的 cookie 属性:
domain
:表示 cookie 所属的域名,默认为当前网站的域名。expires
:表示 cookie 的过期时间,可以是一个 Date 对象或一个时间戳。httpOnly
:表示 cookie 是否只能通过 HTTP 协议来访问,默认为 false。maxAge
:表示 cookie 的最大存活时间,单位为毫秒。path
:表示 cookie 所属的路径,默认为网站的根路径。secure
:表示 cookie 是否仅在 HTTPS 连接时才能被发送,默认为 false。
下面是一个示例代码,用来演示如何设置 cookie 的属性:
// javascriptcn.com 代码示例 const express = require('express') const app = express() app.get('/', (req, res) => { // 设置 cookie 的属性 res.cookie('username', 'john', { domain: 'example.com', expires: new Date(Date.now() + 900000), httpOnly: true, maxAge: 900000, path: '/admin', secure: true }) res.send('cookie 设置成功') }) app.listen(3000, () => { console.log('服务器已启动') })
在上面的代码中,我们设置了一个名为 username
,值为 john
的 cookie,并且设置了一些属性,比如过期时间、域名、路径等。
获取 cookie 的值
在 Express.js 中,获取 cookie 的值非常简单,只需要使用 req.cookies
对象即可。下面是一个示例代码,用来演示如何获取 cookie 的值:
// javascriptcn.com 代码示例 const express = require('express') const app = express() app.get('/', (req, res) => { // 获取 cookie 的值 const username = req.cookies.username res.send(`欢迎回来,${username}`) }) app.listen(3000, () => { console.log('服务器已启动') })
在上面的代码中,我们使用 req.cookies
对象来获取名为 username
的 cookie 的值,并将其显示在网页上。
总结
在本文中,我们介绍了如何在 Express.js 中设置 cookie,以及如何设置 cookie 的属性和获取 cookie 的值。希望通过本文的学习,读者能够更好地理解 cookie 的概念,并且能够在自己的项目中灵活运用 cookie。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6586abb4d2f5e1655d110d77