刚开始摸node.js, 在用express 4.x 的过程中 有一个connect-flash的玩意

如上图, 在 /reg 页面提交注册信息的时候 如若两次输入的密码不匹配则调用请求对象req的flash方法写入提示消息; 然后 在展示 /reg 页面的时候取出抛给视图模版; 看起来就像个字典对象

这个包必须在引用 express-session 包的前提下才能使用 why1 ,并且写入的值 在取出一次后即销毁 why2。 这非常像asp.net mvc里边的 tempdata对象

开源的东西好处就是随时看源码~~~

从 var msgs = this.session.flash = this.session.flash || {}; 这边很容易看出 flash 其实就是存储在session中的一个对象的键名;

然后根据传入参数的个数做不同的处理:

  1 .  当传入参数为2个或多个的时候,session将会有 {"flash":{key:value}}  这样的对象,key就是传入的type,  value可能是字符串,数组或者 格式化字符串;

  2 .  当只传参数type的时候, 就是从session中取出flash对象的相应的value, 并且移除 delete msgs[type];

ps:    flash英文解释是:闪光   我理解成一瞬间显示就消失的东西, 非常符合这里的编写意图,  不过个人觉得要是包名改成“session-flash”会更好 :)

express中使用 connect-flash 及其源码研究的更多相关文章

  1. Fabric2.2中的Raft共识模块源码分析

    引言 Hyperledger Fabric是当前比较流行的一种联盟链系统,它隶属于Linux基金会在2015年创建的超级账本项目且是这个项目最重要的一个子项目.目前,与Hyperledger的另外几个 ...

  2. express中cookie的使用和cookie-parser的解读

    https://segmentfault.com/a/1190000004139342?_ea=504710 最近在研究express,学着使用cookie,开始不会用,就百度了一下,没有百度到特别完 ...

  3. Qt QComboBox之setEditable和currentTextChanged及其源码分析

    目录 Qt QComboBox之setEditable和currentTextChanged以及其源码分析 前言 问题的出现 问题分析 currentTextChanged信号触发 源码分析 Qt Q ...

  4. 精华 对express中next函数的一些理解

        关于next主要从三点来进行说明: next的作用是什么? 我们应该在何时使用next? next的内部实现机制是什么? Next的作用 我们在定义express中间件函数的时候都会将第三个参 ...

  5. 7z文件格式及其源码

    7z文件格式及其源码的分析(四) 这是7z文件格式及其源码的分析系列的第四篇. 上一篇讲到了7z文件静态结构的尾header部分.这一篇开始,将从7z实际压缩流程开始详细介绍7z文件尾header的详 ...

  6. 7z文件格式及其源码的分析

    7z文件格式及其源码的分析 本文是一个系列. 主要是分享我最近一年做7z文件开发的经验. 主要包括7z官方源码的结构分析, 以及7z文件格式的分析. 其中涉及到7z源码结构的各个细节, 以及7z文件格 ...

  7. Express ( MiddleWare/中间件 路由 在 Express 中使用模板引擎 常用API

    A fast, un-opinionated, minimalist web framework for Node.js applications. In general, prefer simply ...

  8. selenium自动化过程中如何操作Flash动画

    最近在看python的爬虫框架(scrapy),一个词概括就是:"酸爽"!等把selenium自动化版块讲完后,打算写一写关于scrapy相关的知识,打算从源码角度解析下scrap ...

  9. Java Web 中使用ffmpeg实现视频转码、视频截图

    Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html  ...

随机推荐

  1. (收藏)C#实现截屏

    项目中使用winform截图,下面两篇文章不错的,能够直接使用. http://www.cnblogs.com/xugang/archive/2007/12/19/1006066.html http: ...

  2. (转)C# SSL-X509使用

    X.509 给出的鉴别框架是一种基于公开密钥体制的鉴别业务密钥管理.一个用户有两把密钥:一把是用户的专用密钥(简称为:私钥),另一把是其他用户都可得到和利用的公共密钥(简称为:公钥).该鉴别框架允许用 ...

  3. 使用kendoui对grid指定行变色

    关键点在于绑定数据源后进行判断,可直接获取当前绑定对象的属性 dataBound: function () { dataView = this.dataSource.view(); ; i < ...

  4. MFC中,如何自定义用户消息

    1.用处 在多个类之间传递消息.当需要响应用户操作,本类却无法实现时,可以向系统发出消息.然后让系统中的需要的位置实现它. 2.方法 2.1定义这个消息,并让拥有者发送这个这个消息,传递一个整型参数 ...

  5. 强大的内网劫持框架之MITMf

    Mitmf 是一款用来进行中间人攻击的工具.它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端.下面让我们一起看看如何在 Kali2.0上安装使用 Mitmf ...

  6. svn老鸟转用git必须理解的概念

    不都是SCM代码管理嘛,有很大区别么?很多svn老鸟都是抱着这样的心态去学习git,然后无一幸免地陷入“查阅过很多资料,依然掌握不好”的困境,至少我们团队是这样的. 网上的资料确实已经很多了,却没有把 ...

  7. SVN+FTP服务器搭建(一)——SVN安装配置篇

    Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它 ...

  8. linux下OpenCV的安装配置

    1 安装cmake及一些依赖库 sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavc ...

  9. oracle 将查询到的数据插入表

    1. 新增一个表,通过另一个表的结构和数据 create table tab1 as select * from tab2 2. 如果表存在: insert into tab1 select * fr ...

  10. iOS地址编码解析

    - (void)viewDidLoad { [super viewDidLoad]; // 创建地址解析器 self.geocoder = [[CLGeocoder alloc] init]; } - ...