在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')); });

From: http://blog.sina.com.cn/s/blog_62fda93c0101h3ex.html
相關文章
相關標籤/搜索