在nodejs express 中使用session的功能

var express = require('express'), 
   routes = require('./routes'), 
   user = require('./routes/user'), 
   http = require('http'), 
   path = require('path'); 
var app = express(); 
// all environments 
   app.set('port', process.env.PORT || 3000); 
   app.set('views', __dirname + '/views'); 
   app.set('view engine', 'jade'); 
   app.use(express.favicon()); 
   app.use(express.logger('dev')); 
   app.use(express.bodyParser()); 
   app.use(express.methodOverride());     
   app.use(express.static(path.join(__dirname, 'public')));
   添加session功能
  //第一种用 MongoSessionStore(这个是使用session数据库的,需要安装MongoSessionStore模块,该模块依赖mongodb模块,所以也要安装mongodb模块) 
  //地址:https://github.com/lodengo/MongoSessionStore 
  var MongoSessionStore = require('MongoSessionStore')(express); 
  app.use(express.cookieParser('your secret here')); 
  app.use(express.session({
     cookie: {
        maxAge: 2 * 60 * 1000
     } , 
     secret: "session secret" ,
     store: new MongoSessionStore({ mongodb_connection_url: "mongodb://127.0.0.1:27017/test", mongoclient_connect_options: {} })
  })); 
  //第二种 使用内存 
  app.use(express.cookieParser('likeshan')); 
  app.use(express.session({ secret: "andylau" }));
  //第三种 使用connect-mongo(需要安装connect-mongo模块,该模块依赖mongodb模块,所以也要安装mongodb模块)
  var MongoStore = require('connect-mongo')(express);
  app.use(express.cookieParser('andylau')); 
  app.use(express.session({
     secret: 'andylau',
     store: new MongoStore({
        //db:'test'
        url: "mongodb://127.0.0.1:27017/test"
     })
  }));
  //第一种和第三种是比较重量级的,因为是用到数据库
  //而第二种是比较轻量级的,对于小型的网站比较适合
  app.use(app.router);//注意这个放置的顺序很重要,不要放在session之前,要放在session之后,否则会提示cannot set property 'name' of undefined 
  // development only 
  if ('development' == app.get('env')) 
  { 
     app.use(express.errorHandler());
  } 


 
  app.get('/test', function (req, res) {
    req.session.name = 'andylau'; 
    res.send(req.session); 
    console.log(req.session.name); 
  });
  http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值