首页 > 代码库 > express 4.2.0 使用session和cookies

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