EXPRESS 4.x 以上使用session和cookie 的记录

关于session 和cookie 我搞了2-3天, 发现这个玩意也挺麻烦的. 很多教程都是把这种会话保存在nosql里面,比如mongo,或者redis等等.但是我还是想直接保存在计算机的内存中,比较符合传统的方式.网上也有很多这方面的文章,但基本上都是你抄我的,我抄你的,而且express有很多这种session/cookie的中间件,总是让人弄迷糊.很多文章都是点到为止,完全要靠自己慢慢去试,去看文档,去摸索.

我是基于connect这个中间件实现的.这个middleware 功能非常强大

有兴趣的同学可以参考: http://blog.fens.me/nodejs-connect/

安装在这里就不说了. 下面我们就来实现一下,希望对大家有用

导入模块在app.js里

1 var connect = require(‘connect‘);

在路由分发语句前加入。

1 app.use(bodyParser.json());
2 app.use(bodyParser.urlencoded());
3 app.use(cookieParser());
4 app.use(connect.session({ secret: ‘lgphp‘, key: ‘lgphp‘ ,cookie: { maxAge: 20000}}));  //session 时长为20秒,这个是以毫秒为单位,这样我们就建立一个session的会话,这是一个全局的设置
5 routes(app);

先说session ,设置session 的KV

 req.session.sessname = ‘i am a sesion‘;

这样我们就设置了一个名为sessname的session变量,值就是iam a sesion,这个session的会话时长是20秒。ubuntu上打字还是不太灵活

获取session

res.send(‘session:‘ + req.session.sessname)

删除session

   req.session.destroy();

判断session是否存在

if (req.session){   //判断session是否被销毁

以上session操作足够完成常用的逻辑啦

下面说cookie,我们也经常用到的。

设置cookie

1   res.cookie(‘cookiename‘,‘i am a cookie‘,{ maxAge: 20000,httpOnly:true, path:‘/‘});//cooike 时长 30 sec

获取cookies的值

var c = req.cookies.cookiename   //这是个字典对象,你可以用括号的方式获得

删除cookie,网上很多,但是好像都没用,有的是把过期时间设置为0,我试了,cookie的值没有了,但是cookie还在,用chrome查看还有的。

   res.cookie(‘cookiename‘,‘null‘,{maxAge:0});

这样删除就没问题了。

判断cookie是否存在,比如做登录和权限验证什么的。cookie失效后,变成了undefined,所以我们这样判断

 if (‘undefined‘ === (typeof req.cookies.cookiename)){
             res.send(‘deleted cookie‘);
         }

原文:http://www.cnblogs.com/lgphp/p/3913077.html?utm_source=tuicool&utm_medium=referral

时间: 2024-10-10 02:55:57

EXPRESS 4.x 以上使用session和cookie 的记录的相关文章

node.js web开发:EXPRESS 4.x 以上使用session和cookie 的记录

关于session 和cookie 我搞了2-3天, 发现这个玩意也挺麻烦的. 很多教程都是把这种会话保存在nosql里面,比如mongo,或者redis等等.但是我还是想直接保存在计算机的内存中,比较符合传统的方式.网上也有很多这方面的文章,但基本上都是你抄我的,我抄你的,而且express有很多这种session/cookie的中间件,总是让人弄迷糊.很多文章都是点到为止,完全要靠自己慢慢去试,去看文档,去摸索. 我是基于connect这个中间件实现的.这个middleware 功能非常强大

express 4.2.0 使用session和cookies

express是基于node.js的一个web框架,但是到了4.xx版本之后,session管理和cookies等许多模块都不再直接包含在express中,而是需要单独下载添加. 由于之前没有注意看人家的更新日志等,所以纠结了一两天,今晚终于搞掂了,传言把session存到redis中,立马觉得高达上了...记录一下,所需的代码如下, var express = require('express'); var session = require('express-session'); //如果要

一个Login页面全面了解session与cookie

背景 做了四年的前端开发,对外一直说自己是web开发,那么身为一个web开发怎能不知道session与cookie以及其管理方式呢~ Login涉及技术栈:Nodejs,MongoDB,Express以及html,css,js 了解session与cookie之前首先要知道什么是http协议,为什么会出现session与cookie,可以参考很久之前总结的(戳我:session与cookie). http协议: http即超文本传输协议(万维网定义的),一种基于浏览器请求与服务器响应的链接,它是

Session和Cookie的使用总结

转:http://www.cnblogs.com/shuang121/archive/2011/03/02/1968768.html Session和Cookie的使用总结: Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西: 我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢? 1.把一

asp.net内置对象session和cookie

1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况下,session对象即被销毁,不要放太多/太大的对象在session. 4.Web应用程序在传统意义上无状态,需要使用内置对象进行客户端状态的保存. 5.session对象和Application对象存储在服务端,cookie对象存储在客户端. 6.session对象适用于安全性相比之下较高的场合

Java面试14|Session与Cookie

1.在分布式环境,管理Session通常使用下面三种方式: (1)Session Replication 方式管理 (即session复制) 将一台机器上的Session数据广播复制到集群中其余机器上 使用场景:机器较少,网络流量较小 优点:实现简单.配置较少.当网络中有机器Down掉时不影响用户访问 缺点:广播式复制到其余机器有一定廷时,带来一定网络开销 tomcat自带的基于tcp广播技术的集群 (2)Session Sticky 方式管理 即粘性Session.当用户访问集群中某台机器后,

Session 与 Cookie

Session 与 Cookie 的作用都是为了保持访问用户与后端服务器的交互状态.它们本身只是HTTP中的一个配置项,在servlet规范中也只对应一个类而已. 理解 Cookie 通俗地说就是当一个用户通过 HTTP 协议访问一个服务器的时候,这个服务器会将一些 Key/Value 键值对返回给客户端浏览器,并给这些数据加上一些限制条件,在条件符合时这个用户下次访问这个服务器的时候,数据又被完整地带回给服务器.W3C 在设计 Cookie 时实际上考虑的是为了记录用户在一段时间内访问 Web

Session与Cookie

Session与Cookie的比较 Cookie与Session都可以进行会话跟踪,但是实现的原理不太一样.一般情况下二者均可以满足需求,但有时候不可以使用Cookie,有时候不可以使用Session.下面通过比较说明二者的特点以及适用的场合.  从存取方式上比较 Cookie中只能保存ASCII字符串,如果需要存取Unicode字符或者二进制数据,需要进行UTF-8,GBK或者BASE64等方式的编码.Cookie中也不能直接存取Java对象.若要存储稍微复杂的信息,使用Cookie是比较困难

会话管理-0.2.Session和Cookie的区别

session和cookie的最大区别在于: 1.保存位置不同 session是保存在服务端的内存里面,而cookie保存于浏览器或客户端文件里面: 2.生命周期不同 session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了,而cookie更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户(Unique Visitor). 3.安全性不同 cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑