會話存儲須要用的express-session包node
app.use(require('express-sessiion')())
express-session接收帶有以下選項的配置對象:redis
key;存放惟一會話標識的cookie名稱,默認爲connect.sid,mongodb
store 會話存儲的實例,默認爲一個MemoryStore的實例express
cookie 會話cookie的cookie設置(path,domain,secure等)服務器
會話設置以後使用起來很是簡單,就是使用req請求對象的session屬性,注意,響應對象上是沒有session屬性的cookie
req.session.userName = 'kevin' //設置session delete req.sessiion.userName 刪除session
一般,生產環境咱們不會用服務器內存來存儲session數據,由於一旦服務器重啓session就沒了,也不適合作集羣擴展。session
能夠用mongodb或redis來存儲會話數據app
1,mongodb存儲會話,須要用到mongoose-sessiondom
var express = require('express'); var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/db'); var app = express(); app.use(require('express-session')({ key: 'session', secret: 'SUPER SECRET SECRET', store: require('mongoose-session')(mongoose) }));
mongodb存儲會話有不少插件可用,另一個很好的插件connect-mongo-storemongoose
var express = require('express'); var app = express(); var MongoStore = require('connect-mongo-store')(express) app.use(express.session({store: MongoStore, secret: 'keyboard cat'})) or app.use(require(''express-session")({store:MongoStore,secret:''xxxx}))
2,redis存儲會話
var session = require('express-session'); var RedisStore = require('connect-redis')(session); app.use(session({ store: new RedisStore(options), secret: 'keyboard cat' }));
options對象主要包括如下幾個選項
client:redis客戶端,經過安裝node_redis來建立redis客戶端對象
host redis服務器主機名
port redis服務器端口
url redis服務器url