中间件介绍龙8游戏

我们来看看session那段处理cookie的代码吧,难免会要使用到cookie

cookie-parser的法力,官方的传道是:Parse Cookie header and populate
req.cookies with an object keyed by the cookie
names.笔者的知晓是,转变headers中的cookie并跟req.cookies合併。作为cookie-parser的基本,parser提示了2个函数:signedCookies和JSONCookies,以及它们的帮助函数。

事先出席了二个学学台式机群,通过学习笔记来分享学习收获。也在那边发一份吧。

此文到这里也就甘休了这么些插件,让大家来回看一下,同时也开荒了下一篇关于session的就学。

当大家在写web的时候,难免会要选拔到cookie,由于node.js有了express那些web框架,大家就能够低价地去建站。在使用express时,平时会利用到cookie-parser这一个插件。今天大家来深入分析一下那个插件。

cookie-parser从顾客端取cookie,然后经过express-session(以express为本)的管理。在顾客端表示为一个签订左券后的字符串,在服务端,由于使用了unsign方法,所以能来看解签过的字符。那样一来,全体的迷底都解开了。大家来探视session那段管理cookie的代码吧。 

本条插件平日作为中间件使用,app.use(cookieParser()),
那样就可以拍卖每贰个伸手的cookie。

复制代码 代码如下:

从名字上看,那正是二个解释Cookie的工具。通过req.cookies能够取到传过来的cookie,并把它们转成对象。上边,大家来深远它的源码。

function setcookie(res, name, val, secret, options) {
  var signed = ‘s:’ + signature.sign(val, secret);
  // ….省略
 
  res.setHeader(‘set-cookie’, header)
}

首先,我们看index.js

这里利用set-cookie写入cookie。当顾客端发送cookie,此时就用到了parser.js的signedCookies。 

复制代码 代码如下:

复制代码 代码如下:

var cookie = require(‘cookie’);
var parse = require(‘./lib/parse’);

exports.signedCookies = function(obj, secret){
  var cookies = Object.keys(obj);
  var dec;
  var key;
  var ret = Object.create(null);
  var val;
 
  for (var i = 0; i < cookies.length; i++) {
    key = cookies[i];
    val = obj[key];  
    dec = exports.signedCookie(val, secret);
 
    if (val !== dec) {
龙8游戏,      ret[key] = dec;
      delete obj[key];
    }
  }
 
  return ret;
};
 
exports.signedCookie = function(str, secret){
  return str.substr(0, 2) === ‘s:’
    ? signature.unsign(str.slice(2), secret)
    : str;
};

此间有2个引用,三个是cookie,二个是cookie-parser那一个基本职能。cookie这一个模块,只提供了2个措施,三个是serialize另一个是parse。

在帮助函数signedCookie中,当发掘含有s:最初则是签订公约过的cookie,那时就用了signature.unsign解签。后一次,让大家来商量一下session。

serialize方法接收key和val,并种类化。 

以上正是node.js
cookie-parser之parser.js的全体内容,希望能给我们多个参照,也期望我们多多帮衬脚本之家。

复制代码 代码如下:

你可能感兴趣的篇章:

  • JS中对Cookie的操作详解
  • JS怎么着设置cookie保藏期为当天24点并弹出应接登入分界面
  • js基于cookie记录定西姓名的法子
  • JavaScript数据存款和储蓄Cookie篇
  • JS使用cookie设置样式的秘籍
  • node.js cookie-parser
    中间件介绍
  • js基于cookie格局铭记重回页面用法示例
  • sso跨域写cookie的一段js脚本(推荐)
  • JavaScript cookie
    跨域访谈之广告推广
  • 用js读写cookie的简短方法(推荐)

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.JSON库克ies(req.cookies); //
把req.cookies对象转化
 
    next();
  };
};

看了那几个主函数,大家还会有部分不明,正好正是它的主文件parse.js。大家在后一次再看这一个文件到底是做什么样用的啊。

上述正是node.js cookie-parser
中间件的全体内容,希望能给我们多个参阅,也指望大家多多帮忙脚本之家。

你大概感兴趣的篇章:

  • Node.js自定义实现公文路由功用
  • node.js中express中间件body-parser的牵线与用法详解
  • node.js
    中间件express-session使用详解
  • node.js中路由,中间件,ge乞求和post央求的参数详解