返回顶部
首页 > 资讯 > 前端开发 > node.js >node.js cookie-parser 中间件介绍
  • 548
分享到

node.js cookie-parser 中间件介绍

中间件jsnode 2022-06-04 17:06:09 548人浏览 八月长安
摘要

之前加入了一个学习笔记本群,通过学习笔记来分享学习成果。也在这里发一份吧。 当我们在写WEB的时候,难免会要使用到cookie,由于node.js有了express这个web框架,我们就可以方便地去建站。在

之前加入了一个学习笔记本群,通过学习笔记来分享学习成果。也在这里发一份吧。

当我们在写WEB的时候,难免会要使用到cookie,由于node.js有了express这个web框架,我们就可以方便地去建站。在使用express时,经常会使用到cookie-parser这个插件。今天我们来分析一下这个插件。

这个插件通常当作中间件使用,app.use(cookieParser()), 这样就可以处理每一个请求的cookie。

从名字上看,这就是一个解释Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。下面,我们来深入它的源码

首先,我们看index.js

var cookie = require('cookie');

var parse = require('./lib/parse');

这里有2个引用,一个是cookie,一个是cookie-parser这个核心功能。cookie这个模块,只提供了2个方法,一个是serialize另一个是parse。

serialize方法接收key和val,并序列化。

var hdr = cookie.serialize('foo', 'bar');    // hdr = 'foo=bar';

paser方法把字符串转成对象

var cookies = cookie.parse('foo=bar; cat=meow; dog=ruff'); // cookies = { foo: 'bar', cat: 'meow', dog: 'ruff' };

再看下面,就是cookie-parser的主函数cookiePaser。

exports = module.exports = function cookieParser(secret, options){

  return function cookieParser(req, res, next) {  // 从请求中得到req,res对象

    if (req.cookies) return next();  // 如果已经有cookie对象,则退出中间件继续运行

    var cookies = req.headers.cookie; // 从headers中取cookie

 

    req.secret = secret;                     // 如果有传入secret,则设置到req对象

    req.cookies = Object.create(null);       // 创建空对象给req.cookies

    req.signedCookies = Object.create(null); // 创建空对象给req.signedCookies

 

    // no cookies

    if (!cookies) {   // 如果没有从headers得到cookies

      return next();  // 退出中间件继续运行

    }

 

    req.cookies = cookie.parse(cookies, options);  // 调用cookie的parse方便把cookie字符串转成cookies对象。

 

    // parse signed cookies

    if (secret) {                                 // 如果设置了secret,则使用 parse的2个方法,把cookie签名。

      req.signedCookies = parse.signedCookies(req.cookies, secret);

      req.signedCookies = parse.JSONCookies(req.signedCookies);

    }

 

    // parse jsON cookies

    req.cookies = parse.JSONCookies(req.cookies); // 把req.cookies对象转化

 

    next();

  };

};

看了这个主函数,我们还有一些迷茫,正好就是它的主文件parse.js。我们在下次再看这个文件到底是做什么用的吧。

以上就是node.js cookie-parser 中间件的全部内容,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: node.js cookie-parser 中间件介绍

本文链接: https://lsjlt.com/news/12996.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • node.js cookie-parser 中间件介绍
    之前加入了一个学习笔记本群,通过学习笔记来分享学习成果。也在这里发一份吧。 当我们在写web的时候,难免会要使用到cookie,由于node.js有了express这个web框架,我们就可以方便地去建站。在...
    99+
    2022-06-04
    中间件 js node
  • node.js中express中间件body-parser的介绍与用法详解
    前言 Node中的核心模块分两类:一类是自带的核心模块,如http、tcp等,第二类是第三方核心模块,express就是与http对应的第三方核心模块,用于处理http请求。express在3.0版本中自带...
    99+
    2022-06-04
    详解 中间件 js
  • Express cookie-parser中间件的示例分析
    这篇文章给大家分享的是有关Express cookie-parser中间件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。入门例子:cookie设置与解析先从最简单的例子...
    99+
    2024-04-02
  • 中间件Tcn介绍
          Tcn作为一个应用中间件,应用于分布式系统中,为系统屏蔽底层通讯细节及平台差异,保障系统的可靠性、可用性、灵活性。此外Tcn系统的目的是搭建一个稳健、高效、简单的分布式系统。   ...
    99+
    2023-06-03
  • PythonDjango中间件详细介绍
    目录一 .中间件简介二 .编写自己的中间件三 .中间件执行流程一 .中间件简介 中间件是Django请求/响应处理的钩子函数。它是一个轻量级的、低级的"插件系统"...
    99+
    2024-04-02
  • Node.js中的流(Stream)介绍
    什么是流? 说到流,就涉及到一个*nix的概念:管道——在*nix中,流在Shell中被实现为可以通过 |(管道符) 进行桥接的数据,一个进程的输出(stdout)可被直接作为下一个进程的输入(stdin)...
    99+
    2022-06-04
    Node js Stream
  • Node.js中 __dirname 的使用介绍
    前言 本文主要给大家介绍的是关于Node.js中 __dirname 使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 方法如下 新建个文件 app.js 里面的内容如下: conso...
    99+
    2022-06-04
    Node js __dirname
  • Nodejs之Express中间件的分类介绍
    目录中间件的分类分别是1 应用级别的中间件2 路由级别的中间件3 错误级别的中间件4 Express内置的中间件5 第三方中间件总结中间件的分类 为了方便大家理解和记忆中间件的使用,...
    99+
    2022-12-03
    Nodejs Express中间件 Nodejs中间件 Express中间件分类
  • ASP.NET Core的中间件与管道介绍
    今天来讨论一个ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很...
    99+
    2024-04-02
  • .NET 6中间件Http Logging使用介绍
    Intro .NET 6 会引入一个 Http logging 的中间件,可以用来帮助我们比较方便记录请求和响应的信息 Sample 废话不多说,直接来看示例吧 var build...
    99+
    2024-04-02
  • 阿里云服务器中间件介绍
    1. Redis Redis是一种高性能的键值存储系统,常用于缓存、消息队列和分布式锁等场景。阿里云提供了Redis服务,可以轻松地在云上部署和管理Redis实例。 2. Memcached Memcached是一种分布式内存对象缓存系统...
    99+
    2023-10-28
    阿里 中间件 服务器
  • ASP.NET Core中间件用法与官方常用中间件介绍
    目录一、什么是中间件中间件和过滤器的区别二、中间件常用方法1、Run方法2、Use方法3、Map方法4、Mapwhen方法三、自定义中间件四、官方常用中间件1、异常处理中间件2、HT...
    99+
    2024-04-02
  • Flask中Cookie和Session理解与作用介绍
    目录前序1、cookie介绍2、session介绍一、cookie学习1、设置cookie2、客户端(浏览器)二、session学习1、设置SECRET_KEY2、设置session...
    99+
    2024-04-02
  • Node.js中的模块系统介绍
    为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js ...
    99+
    2024-04-02
  • Nodejs中Express 常用中间件 body-parser 实现解析
    写在前面 body-parser是非常常用的一个express中间件,作用是对post请求的请求体进行解析。使用非常简单,以下两行代码已经覆盖了大部分的使用场景。 app.use(bodyParser....
    99+
    2022-06-04
    中间件 常用 Express
  • Node.js 中的 module.exports 与 exports区别介绍
    目录介绍示例从源码中理解通过示例理解示例一示例二示例三示例四小结介绍 module:每个模块中都有 module 对象,存放了当前模块相关的信息;module.e...
    99+
    2024-04-02
  • Node.js中文件操作模块File System的详细介绍
    File System的缩写是fs,该模块提供本地文件的读写能力。 Nodejs导入文件系统模块(fs)语法如下所示: var fs = require("fs"); 异步和同步 Node.js文件系...
    99+
    2022-06-04
    详细介绍 模块 操作
  • Java中LocalDate、LocalTime、LocalDateTime时间类介绍
    目录         一、三者的介绍         二、实例化 1、普通实例化  2、实例化并设置日期:  3、利用格式化工具实例化并将日期字符串设置为日期         三、常用方法介绍 1、获取星期几 2、获取月份 3、对年月日时分...
    99+
    2023-09-21
    java 开发语言
  • node.js中debug模块的简单介绍与使用
    前言 相信使用node.js的朋友们都知道,一般在nodejs需要进行调试的时候,可以使用console.log()方法来将调试信息输出到控制台,当发布到生产环境的时候,需要将这些调试信息都注释掉,为了方便...
    99+
    2022-06-04
    模块 简单 node
  • Node.js中的缓冲与流模块详细介绍
    缓冲(buffer)模块 js起初就是为浏览器而设计的,所以能很好的处理unicode编码的字符串,但不能很好的处理二进制数据。这是Node.js的一个问题,因为Node.js旨在网络上发送和接收经常是以二...
    99+
    2022-06-04
    详细介绍 模块 Node
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作