📅  最后修改于: 2023-12-03 14:51:52.376000             🧑  作者: Mango
在使用 Express 框架的时候,我们可以很方便地设置和获取 cookie。在本文中,我们将介绍如何在节点 js 中使用 Express 框架设置 cookie。
Cookie 是一种存储在客户端浏览器中的小型数据片段。它通常由服务器生成,并通过 HTTP 响应发送到客户端浏览器。浏览器会将这些 cookie 存储在本地,并在随后的请求中将其返回给服务器。这样,服务器就可以根据 cookie 中存储的信息来识别客户端并提供个性化的服务。
在 Express 中,我们使用 cookie-parser
中间件来处理 cookie。这个中间件会解析客户端浏览器发送的 cookie,并将其存储在 req.cookies
对象中。
在开始之前,我们需要安装 cookie-parser
中间件。我们可以使用以下命令在项目中安装这个中间件:
npm install cookie-parser
在 Express 中设置 cookie 很简单。我们可以使用 res.cookie()
方法来设置一个新的 cookie。
下面是一个简单的例子,用于设置名为 username
的 cookie,其值为 john
:
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
app.get('/', (req, res) => {
res.cookie('username', 'john');
res.send('Cookie has been set');
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
在上面的代码中,我们首先加载了 cookie-parser
中间件,并将其注册到 Express 应用程序中。然后,在处理 /
路由时,我们使用 res.cookie()
方法来设置一个名为 username
的 cookie,其值为 john
。最后,我们向客户端返回一条消息,表示 cookie 已经被设置。
要获取客户端浏览器发送的 cookie,我们只需要访问 req.cookies
对象。
下面是一个简单的例子,用于获取名为 username
的 cookie 的值并将其发送回客户端:
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
app.get('/', (req, res) => {
const username = req.cookies.username;
res.send(`Hello ${username}`);
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
在上面的代码中,我们首先加载了 cookie-parser
中间件,并将其注册到 Express 应用程序中。然后,在处理 /
路由时,我们从 req.cookies
对象中获取名为 username
的 cookie 的值,并将其插入到返回的消息中。
当设置 cookie 时,我们可以指定一些选项来控制 cookie 的行为。以下是一些常用的选项:
maxAge
:指定 cookie 的有效期(以毫秒为单位)expires
:指定 cookie 的过期时间(使用 Date 对象)path
:指定 cookie 的可访问路径domain
:指定 cookie 的域名secure
:指定 cookie 是否只能通过 HTTPS 连接发送httpOnly
:指定 cookie 是否只能由 HTTP 请求访问,不能通过 JavaScript 来访问以下是一个示例,我们使用 maxAge
选项来设置 cookie 的有效期为 1 小时:
const express = require('express');
const cookieParser = require('cookie-parser');
const app = express();
app.use(cookieParser());
app.get('/', (req, res) => {
res.cookie('username', 'john', { maxAge: 3600000 });
res.send('Cookie has been set');
});
app.listen(3000, () => {
console.log('Server listening on port 3000');
});
在上面的代码中,我们使用 maxAge
选项来设置 username
cookie 的有效期为 1 小时(3600000 毫秒)。
在本文中,我们介绍了如何在节点 js 中使用 express 框架设置和获取 cookie。通过使用 cookie-parser
中间件,我们可以很方便地处理 cookie,并控制它们的行为和属性。
以上就是如何使用express框架在节点js中设置cookie的完整介绍。