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‘); //如果要使用session,需要单独包含这个模块
var cookieParser = require(‘cookie-parser‘); //如果要使用cookie,需要显式包含这个模块
var RedisStore = require(‘connect-redis‘)(session);
var app = express();

// 设置 Cookie
app.use(cookieParser(‘xiaocc_‘));

// 设置 Session
app.use(session({
  store: new RedisStore({
    host: "127.0.0.1",
    port: 6379,
    db: "test_session"
  }),
  resave:false,
  saveUninitialized:false,
  secret: ‘keyboard cat‘
}))

app.get("/", function(req, res) {
  //console.log(session);  //装了n多次,没有把调试工具下载弄好,实在悲哀,
只能每次都log,求走过路过的大神指导~
//  var session = req.session;
  session.count = session.count || 0;
  var n = session.count++;
  res.send(‘hello, session id:‘ + session.id + ‘ count:‘ + n);
});

app.listen(3000);

console.log(‘Web server has started on http://127.0.0.1:3000/‘);

上面的例子,在我的项目文件中包含的模块如下,如果没有导入其中的包,需要手工下载导入:

1 .body-parser
2 .connect-redis
3.cookie-parser
4.debug
 5.express
6. express-session
7. jade (这个看当前使用的模板而定)
 8.morgan
 9.redis
 10.redis-server
 11.static-favicon

我正在使用的express版本为4.2.0

如果是4.**版本以前,没有尝试过。有问题再解决了~(如果只是为了解决问题,那到这里,就可以不往下看了,以下注释一些闲聊的东西。~~~)

建议:如果遗忘了cookies和session的原理和作用,最好先补一下相关网络知识。

ps:这个场景有助于联想和记忆:

一个茶馆,3中类型的顾客:分别为甲乙丙3类。茶馆搞活动:喝5杯龙井送一杯茅尖

甲类:每次去这个茶馆,和以往是否去过这个茶馆没有任何关联,当然,顾客也比较难享受到这个优惠活动。(http协议连接的无状态)

也可能:

甲每次去到,无论是谁,牛逼的店员立马能记着该顾客的历史消费记录,也可以比较轻松享受到这个优惠活动。(站在http协议的上面,抛卻http的具体实现,貌似有状态。对的,看起来是店员牛逼,可能是人家在背后早已经根据每个顾客的体貌特征做了记录,别人表现的牛逼,我们无法感受别人在我们看不到的地方做了多少功课(写给我自己看的这句)

乙类:

乙在第一次去喝茶的时候,店员给了他一张积分卡,该积分卡由顾客保管,以后,顾客每次消费,都会在卡上做记录。(cookie)

丙类:

丙在第一次去喝茶的时候,店员会给他一张磁卡,该磁卡有顾客记录,但是以后顾客的每次消费记录存在茶馆里。再想想,除非是顾客请求销卡,否则茶馆估计不会轻易删除顾客消费记录的,另外一种情况,就是某顾客已经有好长一段时间没有来茶馆喝茶了,,,好吧,茶馆只能当这个人不复存在咯~(session,的各种)

最后,十分感谢下面链接的博文,为我解决这个问题提供了指导:

http://blog.csdn.net/liyi109030/article/details/35271389

session和cookies的介绍,参考了以下链接的文章,对此,表示十分感谢:

http://www.2cto.com/kf/201206/135471.html

扯得有点跑题,有点散乱,仅此记录,以上~

xiaocc

express 4.2.0 使用session和cookies

时间: 2024-12-28 21:38:39

express 4.2.0 使用session和cookies的相关文章

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

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

Express中使用mongodb存储session

express默认有队session的支持,但是是存储在内存中的. 我们可以使用mongodb来存储会话. 但是express的各个版本中对该功能的写法是不同的. Express 2.x: app.use(express.session({ secret: settings.cookieSecret, store: new MongoStore({ db: settings.db })})); Express 3.x: var express = require('express');var m

ASP.Net MVC Session和Cookies的简单使用

目标:用Session和Cookies实现登陆信息保存和展现 Cookies实现: Controller: 1 1 //把登陆用户名存到cookies中 2 2 HttpCookie cook = new HttpCookie("cookusername", UserName.ToString()); 3 3 Response.Cookies.Add(cook); View: <a href="#" class="dropdown-toggle&qu

Session 与cookies 的区别

两个都可以用来存私密的东西,同样也都有有效期的说法. 区别在于:session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去. 1.cookie数据存放在客户的浏览器上, session数据放在服务器上 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session 3.session会在一定时间内保存在服务器上.当访问增多,会比较占用你服务器的性能 考虑到减轻服务器

session跟cookies区别

Session和Cookie的使用总结: Session和cookie都是asp.Net中的内置对象,至于他们有什么区别,在这里就不在多说,现在来说说一些比较实用点的东西: 我们知道网站都有一个后台管理系统,其中有登录和退出两个功能,在登录的时候我们往往会把用户的信息保存到session或者cookie中,以便后面使用,那么在登录的时候我们要注意哪些呢? 1.把一些敏感的东西存到session中,不太敏感的东西可以存在session或者Cookie中,比如用户名就是不太敏感,但是介于有些浏览器不

webform中Session和Cookies对象的用法、登录保持

一 .webform中Session和Cookies对象的用法 1.Session: Session:在计算机中,尤其是在网络应用中,称为"会话控制".Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去.当用户请求来自应用程序的 Web 页时,如果该 用户还没有会话,则 Web 服务器将自动创建一个 Session 对象.当会话过期或被放弃后,服务器将终

express 4 使用session和cookies

https://my.oschina.net/u/1466553/blog/294336 http://blog.csdn.net/liyi109030/article/details/35271389 express是基于node.js的一个web框架,但是到了4.xx版本之后,session管理和cookies等许多模块都不再直接包含在express中,而是需要单独下载添加. var express = require('express'); var session = require('e

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

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

nodejs express下使用redis管理session

Session实现原理 实现请求身份验证的方式很多,其中一种广泛接受的方式是使用服务器端产生的Session ID结合浏览器的Cookie实现对Session的管理,一般来说包括以下4个步骤: 服务器端的产生Session ID 服务器端和客户端存储Session ID 从HTTP Header中提取Session ID 根据Session ID从服务器端的Hash中获取请求者身份信息 使用Express和Redis对Session管理的实现 var session = require('exp