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) => {// 获取请求中的 Cookieconst 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) => {// 设置一个签名的 Cookieres.cookie("signedUsername", "Jane", { signed: true });res.send("Signed cookie set successfully");});app.get("/get-signed-cookie", (req, res) => {// 获取签名的 Cookieconst 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");});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/70210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux入侵检查流程

1. 初步信息收集 1.1 系统信息 • 目的:了解当前系统的基本情况,包括操作系统版本、内核版本等。 • 命令: cat /etc/redhat-release 1.2 网络信息 目的:查看网络连接状态、开放端口以及防火墙规则,排查异常网络活…

Elasticsearch 混合搜索 - Hybrid Search

作者:来自 Elastic Valentin Crettaz 了解混合搜索、Elasticsearch 支持的混合搜索查询类型以及如何制作它们。 本文是三篇系列文章中的最后一篇,深入探讨了向量搜索(又称语义搜索)的复杂性以及它在 Elasticsearch 中的实现方式。…

本地客户端调用火山方舟 DeepSeek R1API教程

本地第三方AI聊天机器人客户端调用 DeepSeek R1,目前火山云 DeepSeek R1 API 目前测试下高速推理速度,不卡顿,联网搜索能力,可以访问更多联网信息50万免费 tokens,超出后全网最低价。 目录 一、火山方舟 DeepSeek R1A…

华为最新OD机试真题-通过软盘拷贝文件-Python-OD统一考试(E卷)

最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 题目描述 有一名 科学家只 想要从一台古董电脑中拷贝文件到自己的电脑中加以研究。 但此电脑除了有一个3.5寸软盘驱动器以外,没有任何手段可以将文件持贝出来,而且只有一张软盘…

第四十三篇——零和博弈(鞍点理论):如何找到双方的平衡点?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 这篇文章再读依然茅塞顿开;有很多需要自己去吸收的东西&#…

ESP32 ESP-IDF TFT-LCD(ST7735 128x160)自定义组件驱动显示

ESP32 ESP-IDF TFT-LCD(ST7735 128x160)自定义组件驱动显示 🌿驱动参考来源:https://blog.csdn.net/weixin_59250390/article/details/142691848📍个人相关驱动内容文章:《ESP32 ESP-IDF TFT-LCD(ST7735 128x160) LVGL基本配置和使…

请解释一下Standford Alpaca格式、sharegpt数据格式-------deepseek问答记录

1 Standford Alpaca格式 json格式数据。Stanford Alpaca 格式是一种用于训练和评估自然语言处理(NLP)模型的数据格式,特别是在指令跟随任务中。它由斯坦福大学的研究团队开发,旨在帮助模型理解和执行自然语言指令。以下是该格式的…

数据治理中 大数据处理一般都遵循哪些原则

在数据治理中,大数据处理通常遵循以下原则: 最小化原则:企业应只收集实现特定目的所需的数据,避免数据冗余和安全风险。 合法性原则:企业必须遵守相关法律法规,确保数据处理符合法律要求,降低法…

Python 基础-使用dict和set

dict Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 举个例子,假设要根据同学的名字查找对应的成绩&am…

《模式和状态管理》知识总结

一、ECUM 1.1 缩略语 我在这里列出的一些名词的含义只是我在学习过程中自己并不知晓的名词,有其他不会的名词可以自行阅读文档。(会读文档真嘟很重要) Callback:回调函数,由高级的模块提供,由低级的模块…

基于语音的阿尔茨海默病检测识别

摘要 阿尔茨海默病 (AD) 是一种进行性神经退行性疾病,会严重损害认知功能,导致记忆力减退和其他行为改变。它是全球第七大死因,有数百万人受到影响。早期准确检测 AD 对于改善患者预后和减缓疾病进展至关重要。机器学习…

Bom详解和Dom详解

Javascript的数据类型 1.BOM(浏览器对象模型)1.1window对象(1)全局作用域:(2)窗口属性:(3)弹窗和对话框:(4)定时器:(5)导航和历史:(6)打开和关闭窗口: 1.2navigator对象(1)浏览器信息属性:(2)浏…

openharmony中HDF驱动框架关键流程说明-观察者模式

在分析openharmony 5.0的HDF驱动框架时我们会发现用了很多面向对象的思想,例如类继承、接口、单例类等,本来应该是好事情,但使用时对象之间的关系交错复杂,不太符合linux内核分层分模块的思路,导致整体理解起来比较困难…

深度学习框架及其常用模型文件保存格式

在深度学习领域,不同的框架有各自常用的模型文件保存格式。了解这些格式对于模型的训练、保存、部署和分享都非常重要。下面将详细介绍几种常见深度学习框架及其对应的模型文件保存格式。 1. PyTorch 框架 1.1 文件格式 .pt .pth 1.2 说明 这两种文件格式本质上…

Java字符串到底能有多长

文章目录 编译期运行期实际开发建议总结编译期 在编写代码时,直接写在代码里的字符串(硬编码字符串)有一个长度限制。具体来说,字符串的最大长度不能超过65534个字符。如果超过这个限制,编译器会报错。 当你在代码里直接写字符串时: String text = "我是一个很长很…

blender骨骼分层问题:某一层的骨骼怎么移动到第一层

一、原生Blender骨骼分层操作方法 1. 进入姿态模式 按A选中骨骼 →按M →鼠标左键点击相应骨骼层 注意:Blender原生界面中,骨骼层是通过姿态模式下的快捷键M勾选框直接控制的,每个勾选框对应一个层(共32层)。移动骨…

一.AI大模型开发-初识机器学习

机器学习基本概念 前言 本文主要介绍了深度学习基础,包括机器学习、深度学习的概念,机器学习的两种典型任务分类任务和回归任务,机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…

cornerstone3D学习笔记-MPR

最近在研究如何利用cornerstone3D (v1.70.13) 来实现MPR功能,找到它的一个demo -- volumeBasic, 运行效果如下图 看了下主程序的示例代码,非常简单,可以说corestone3D这个库把很多细节都封装起来了,使得调用者可以很简单的快速实…

使用 Go-DeepSeek 轻松调用 DeepSeek 模型:从在线 API 到本地部署

引言 DeepSeek 是一个强大的 AI 模型平台,支持多种自然语言处理任务,如对话生成、代码补全和函数调用。为了方便 Go 开发者快速集成 DeepSeek 的功能,我开发了一个非官方的 Go 客户端库:go-deepseek。本文将详细介绍如何使用该库…

VSCode 实用快捷键

前文 VSCode 作为文本编辑神器, 熟练使用其快捷键更是效率翻倍, 本文介绍 VSCode 常用的实用的快捷键 实用快捷键 涉及到文本操作, 搜索定位, 多光标, 面板打开等快捷键 功能快捷键复制光标当前行 (不需要鼠标选中) Ctrl C 剪切光标当前行 (不需要鼠标选中) Ctrl X 当前行下…