express 4.0 session 用法与填坑指南

Nodejs学习笔记

使用express框架,搭建网站,学习一些必要的web代码写法,今天涉及的是session的用法。

看见blog.fens.me中的一些文章,照着开始学习nodejs的session用法,但是因为blog中作者学习的比较早,express4.0按照当时的开发存在一定的问题,网上有许多的解决办法,但是不能直接使用,或者感觉少了一些我想要的东西,自己睡前把这些东西总结下,备案~~

==================================================================================

框架和用到的依赖:

1.express 4.0+

2.connect-mongo

3.express-session

#####废话记录:为什么express4.0之前的版本可以按照大部分教程中的使用,因为4.0之前express还没有将session模块分离,都是和express集成到一起的,而在4.0之后的版本,很多模块都独立出去,需要自己重新去依赖。

==================================================================================

express的session原理:

利用mongodb进行保存session,然后完成单线程sgi的session的目的。

这里感觉和现在互联网公司中的rest请求验证token的模式是一致的,不过互联网公司由于用户体验等问题,大部分采用redis保存唯一的通用sessionId或者token,从而达到多服务器公用同一个身份验证的目的。

==================================================================================

1.本地mongodb的配置JS(setting.js)路径和app.js同级

var setting = {
    cookieSecret: "hello",
    db: "session"
};
module.exports = setting;

#######这里继续废话,module是采用CommonJS的规约进行JS的类等管理的,这里犯了低级错误,exports少写了一个s,基本功不好,js理解不好,造成问题,需要js的知识强化

==================================================================================

2.在app.js中引入必须的模块

var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var setting = require('./setting');

==================================================================================

3.引入session的配置

app.use(session({
    secret: setting.cookieSecret,
    store: new MongoStore({
        db : setting.db
    })
}));

==================================================================================

4.写入session

req.session.username = req.body.username;
在session中写入username

==================================================================================

5.读取session

    if(req.session.username != null){
        res.render('users',{"title":"has session"});
    } else{
        res.render('index', { title: 'Express' });
    }
判断session是否存在,debug模式可以看到值

每个模块中都有readme.md的文件,里面有每个模块的示例,看那个其实比找资料实惠~~





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值