📜  如何在 Node.js 中访问 HTTP Cookie?(1)

📅  最后修改于: 2023-12-03 15:24:18.046000             🧑  作者: Mango

如何在 Node.js 中访问 HTTP Cookie?

在 Web 应用程序中,Cookie 是一种常见的跟踪机制,它可以存储客户端的一些信息。在 Node.js 中,我们可以使用 http 模块来创建 Web 服务器,并使用 requestresponse 对象来访问和发送 HTTP Cookie。

添加 Cookie

我们可以在 Node.js 中使用 response.setHeader() 方法来添加 Cookie。它接受三个参数:Cookie 的名称、值和一些可选的属性,如过期时间、域和路径等。

response.setHeader('Set-Cookie', ['name=value; expires=Thu, 01 Jan 2099 00:00:00 GMT', 'age=30']);

在上面的例子中,我们添加了两个 Cookie:name 和 age,其中 name 的值为 value,过期时间设置为 2099 年 1 月 1 日。

读取 Cookie

当客户端发送请求时,包含任何 Cookie 的请求都会在请求头中发送。我们可以使用 request.headers.cookie 属性来访问 Cookie。

const cookies = request.headers.cookie;

if (cookies) {
  cookies.split(';').forEach(cookie => {
    const [name, value] = cookie.trim().split('=');
    console.log(`${name}: ${value}`);
  });
}

在上面的例子中,我们首先检查请求头中是否有 Cookie,然后使用 split() 方法将每个 Cookie 分开。对于每个 Cookie,我们使用 trim() 方法删除前导和尾随空格,并使用 split() 方法将名称和值分成两个变量 namevalue。最后,我们将名称和值打印到控制台。

小结

在 Node.js 中,我们可以通过添加和读取 Cookie 来实现会话追踪。添加 Cookie 使用 response.setHeader() 方法,而读取 Cookie 使用 request.headers.cookie 属性。