Cookie 是一种在浏览器和服务器之间传递数据的机制。在 Node.js 中,可以使用 http
模块来读取和设置 Cookie 值。本文将介绍如何在 Node.js 中设置 Cookie 值。
设置 Cookie 值
要在 Node.js 中设置 Cookie 值,需要使用 response.setHeader()
方法。以下是一个基本示例:
const http = require('http'); http.createServer((req, res) => { res.setHeader('Set-Cookie', 'mycookie=value'); res.end('Hello World!'); }).listen(3000);
在此示例中,我们使用 res.setHeader()
方法设置了一个名为 mycookie
的 Cookie,其值为 value
。当浏览器收到响应时,它将存储该 Cookie,并在后续请求中发送该 Cookie。
设置多个 Cookie 值
如果需要设置多个 Cookie 值,可以将多个键值对用分号隔开。以下是一个示例:
const http = require('http'); http.createServer((req, res) => { res.setHeader('Set-Cookie', ['name1=value1', 'name2=value2']); res.end('Hello World!'); }).listen(3000);
在此示例中,我们使用 res.setHeader()
方法设置了两个 Cookie: name1=value1
和 name2=value2
。
设置过期时间
Cookie 可以设置过期时间,以控制浏览器何时删除 Cookie。可以使用 Expires
、Max-Age
或 Expires
和 Max-Age
的组合来设置过期时间。
使用 Expires
使用 Expires
设置 Cookie 过期时间,可以指定一个日期和时间,表示在该时间之后,浏览器应该删除该 Cookie。以下是一个示例:
const http = require('http'); http.createServer((req, res) => { const expires = new Date(Date.now() + 86400000).toUTCString(); res.setHeader('Set-Cookie', 'mycookie=value; Expires=' + expires); res.end('Hello World!'); }).listen(3000);
在此示例中,我们将 Cookie 的过期时间设置为当前时间加上一天(86400000 毫秒)。
使用 Max-Age
使用 Max-Age
设置 Cookie 过期时间,可以指定从现在开始 Cookie 存活的秒数。以下是一个示例:
const http = require('http'); http.createServer((req, res) => { res.setHeader('Set-Cookie', 'mycookie=value; Max-Age=3600'); res.end('Hello World!'); }).listen(3000);
在此示例中,我们将 Cookie 的过期时间设置为 1 小时后。
使用 Expires
和 Max-Age
可以同时使用 Expires
和 Max-Age
来设置 Cookie 过期时间。如果两者都存在,则 Max-Age
优先级高于 Expires
。以下是一个示例:
const http = require('http'); http.createServer((req, res) => { const expires = new Date(Date.now() + 86400000).toUTCString(); res.setHeader('Set-Cookie', 'mycookie=value; Max-Age=3600; Expires=' + expires); res.end('Hello World!'); }).listen(3000);
在此示例中,我们将 Cookie 的过期时间设置为当前时间加上一天,并且在此期间内 Cookie 存活 1 小时。
设置 Cookie 范围
Cookie 可以设置范围,以控制哪些页面可以访问该 Cookie。可以使用 Domain
、Path
或 Secure
来设置 Cookie 范围。
使用 Domain
使用 Domain
来设置 Cookie 在哪个域名下可用。以下是一个示例:
const http = require('http'); http.createServer((req, res) => { res.setHeader('Set-Cookie', 'mycookie=value; Domain=example.com'); res.end('Hello World!'); }).listen(3000);
在此示例中,我们将 Cookie 的范
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/31268