Node.js 中 cookie-parser 依赖安装使用详解

解析 HTTP 请求中的 Cookie 的 Node.js 中间件

一、安装

npm install cookie-parser

二、基本使用

const express = require("express");
const cookieParser = require("cookie-parser");
const app = express();
// 使用 cookie-parser 中间件
app.use(cookieParser());
app.get("/", (req, res) => {
  // 获取请求中的 Cookie
  const cookies = req.cookies;
  console.log("Cookies:", cookies);
  res.send("Cookie parsed successfully");
});
const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

二、解析与设置 Cookie

1. 解析 Cookie

`cookie-parser` 会把请求中的 Cookie 解析成一个对象,存储在 `req.cookies` 中。可以通过访问 `req.cookies` 来获取 Cookie 的值。

app.get("/get-cookie", (req, res) => {
  const username = req.cookies.username;
  if (username) {
    res.send(`Hello, ${username}`);
  } else {
    res.send("No username cookie found");
  }
});

2. 设置 Cookie

使用 `res.cookie()` 方法可以设置响应中的 Cookie。该方法接受三个参数:Cookie 的名称、值和可选的配置对象。

app.get("/set-cookie", (req, res) => {
  // 设置一个名为 username 的 Cookie,值为 John,有效期为 1 小时
  res.cookie("username", "John", { maxAge: 3600000, httpOnly: true });
  res.send("Cookie set successfully");
});

3. 签名 Cookie

`cookie-parser` 支持对 Cookie 进行签名,以确保 Cookie 的完整性和安全性。在初始化 `cookie-parser` 时传入一个密钥,就可以使用签名 Cookie。

const express = require("express");
const cookieParser = require("cookie-parser");
const app = express();
// 使用带有密钥的 cookie-parser 中间件
app.use(cookieParser("mysecretkey"));
app.get("/set-signed-cookie", (req, res) => {
  // 设置一个签名的 Cookie
  res.cookie("signedUsername", "Jane", { signed: true });
  res.send("Signed cookie set successfully");
});
app.get("/get-signed-cookie", (req, res) => {
  // 获取签名的 Cookie
  const signedUsername = req.signedCookies.signedUsername;
  if (signedUsername) {
    res.send(`Hello, ${signedUsername}`);
  } else {
    res.send("No signed username cookie found");
  }
});
const port = 3000;
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

三、清除 Cookie

使用 `res.clearCookie()` 方法可以清除客户端的 Cookie。需要指定要清除的 Cookie 的名称。

app.get("/clear-cookie", (req, res) => {
  res.clearCookie("username");
  res.send("Cookie cleared successfully");
});

到此这篇关于Node.js 中 cookie-parser 依赖详解的文章就介绍到这了,更多相关Node.js cookie-parser 依赖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源链接:https://www.jb51.net/javascript/336109nd0.htm

© 版权声明
THE END
支持一下吧
点赞12 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容