📜  如何使用 express 框架在节点 js 中设置 cookie? - Javascript(1)

📅  最后修改于: 2023-12-03 14:51:52.376000             🧑  作者: Mango

如何使用 express 框架在节点 js 中设置 cookie

在使用 Express 框架的时候,我们可以很方便地设置和获取 cookie。在本文中,我们将介绍如何在节点 js 中使用 Express 框架设置 cookie。

简介

Cookie 是一种存储在客户端浏览器中的小型数据片段。它通常由服务器生成,并通过 HTTP 响应发送到客户端浏览器。浏览器会将这些 cookie 存储在本地,并在随后的请求中将其返回给服务器。这样,服务器就可以根据 cookie 中存储的信息来识别客户端并提供个性化的服务。

在 Express 中,我们使用 cookie-parser 中间件来处理 cookie。这个中间件会解析客户端浏览器发送的 cookie,并将其存储在 req.cookies 对象中。

安装依赖

在开始之前,我们需要安装 cookie-parser 中间件。我们可以使用以下命令在项目中安装这个中间件:

npm install cookie-parser
设置 cookie

在 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

要获取客户端浏览器发送的 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 时,我们可以指定一些选项来控制 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的完整介绍。