請看這個博客: http://spartan1.iteye.com/blog/1729148
我自己的理解
session俗稱會話。
第一次訪問服務器的時候由服務器創建,相當於一個cookie(就是),key為sessionid之類的名字。
每次http請求的時候,會取出來與數據庫中保存的session列表,對比找出相同的那個,然后找出這個req.session的user或者愛好之類的屬性的信息。
Session 對象存儲特定用戶會話所需的信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。
當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。
session有自己的設置方式和銷毀的方式,一般情況下connect-redis(session)會幫助我們管理,這個我們不需要關心。
如果你還不理解:請查看這篇博客:http://ourjs.com/detail/54b72644232227083e00000a
參數的設置:
miss lei的項目中:
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
store: new RedisStore(conf.SESSION_REDIS),
SESSION_REDIS:{
port: 6379,
//port: 6379,
//host: '127.0.0.1'
host: '10.150.160.136'
},
只給了數據庫的ip和端口。
而在miss shen的項目中:
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
options.store = new RedisStore( {retry_max_delay: 5000, max_attempts: 3} );
************************************
************************************
當然了可以放redis中,也可以放mongo中,我們放在redis中的比較多。