nodejs 如何獲取express-session的所有session(調用store.all())

express-session

express-session是在node服務端建立會話(session)的中間件罚缕。會話存儲的實現可使用redis哑了、mongodb握联、sql serve等,具體可看官方文檔http://www.expressjs.com.cn/en/resources/middleware/session.html

如何查看所有的會話信息

express-session文檔里面有這么一個屬性store笛臣,這個屬性提供了好幾個回調函數工秩。
原文:


store說明

翻譯后:


翻譯后store回調函數

要獲取所有的會話可通過 store.all()方法進行獲取尸饺,但是官網沒看到具體怎么使用store這些回調函數的。
以下是我通過查詢網上一些相關資料和看nodejs返回的requist分析的助币。

使用案例

  • 建立會話
    我只粘貼了部分代碼浪听,我使用的是redis來作為會話數據(session)的存儲。
var express = require('express');
var path = require('path');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer = require('multer');
let session = require('express-session');
var helmet = require('helmet');
let RedisStore = require('connect-redis')(session);
let redisClient = require('./db/redis');

app.use(session({
    secret: 'session-abc', // 建議統(tǒng)一命名眉菱,盡量復雜  同一個名字馋辈,可以實現session共享
    name: 'session-abc', // 建議統(tǒng)一命名,盡量復雜倍谜,同一個名字迈螟,可以實現session共享
    saveUninitialized: false,
    resave: false,
    unset: 'destroy',
    maxAge: 24 * 60 * 60 * 1000,
    cookie: { maxAge: 24 * 60 * 60 * 1000 },
    store: new RedisStore({
        client: redisClient,
        ttl: 24 * 60 * 60,
        prefix: 'node-session'
    })
}));
  • 獲取所以會話信息,以及查詢其他session尔崔、修改其他session
    以下答毫,我是做同一個用戶只能一個人登錄,新登錄的會把舊登錄的給擠掉季春。store. set()
    方法并不能修改其他用戶的信息洗搂,僅修改的是store里面這個session的值。如果要修改其他的信息载弄,可直接修改redis里面的值
// 獲取所有已存在的session-store耘拇,req.sessionStore就相當express-session官網中的store
            req.sessionStore.all(function(err,sessions){
                if(err){
                    console.log('sessionStore-err',err)
                }
                // 過濾和當前用戶id匹配的session
                sessions.filter(item =>{
                    // 匹配所有和當前用戶id相同的session(不包括自身session)
                    if(item.user && item.id != req.sessionId){
                        return item.user.user === req.session.user.user
                    }else{
                        return false;
                    }
                    return item
                }).map(item =>{
                    // 去除所有和當前用戶的id相同的session.user(用戶信息)
                    
                    // 獲取舊的session
                    req.sessionStore.get(item.id,function(err,se){
                        if(err) return console.log('sessionStore-get',err)
                        console.log('需去除重複的session',se);
                        delete se.user;
                        // 修改其他的session
                        req.sessionStore.set(se,function(error){
                            if(err) return console.log('sessionStore-set',err)
                        })
                    });
                    return item
                });
            })

如有不足,請多指教

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末宇攻,一起剝皮案震驚了整個濱河市惫叛,隨后出現的幾起案子,更是在濱河造成了極大的恐慌逞刷,老刑警劉巖嘉涌,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異夸浅,居然都是意外死亡仑最,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門帆喇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來警医,“玉大人,你說我怎么就攤上這事坯钦≡せ剩” “怎么了损敷?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長深啤。 經常有香客問我,道長路星,這世上最難降的妖魔是什么溯街? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮洋丐,結果婚禮上呈昔,老公的妹妹穿的比我還像新娘。我一直安慰自己友绝,他們只是感情好堤尾,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迁客,像睡著了一般郭宝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掷漱,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天粘室,我揣著相機與錄音,去河邊找鬼卜范。 笑死衔统,一個胖子當著我的面吹牛,可吹牛的內容都是我干的海雪。 我是一名探鬼主播锦爵,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奥裸!你這毒婦竟也來了险掀?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湾宙,失蹤者是張志新(化名)和其女友劉穎迷郑,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體创倔,經...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡嗡害,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了畦攘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霸妹。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖知押,靈堂內的尸體忽然破棺而出叹螟,到底是詐尸還是另有隱情鹃骂,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布罢绽,位于F島的核電站畏线,受9級特大地震影響,放射性物質發(fā)生泄漏良价。R本人自食惡果不足惜寝殴,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望明垢。 院中可真熱鬧蚣常,春花似錦、人聲如沸痊银。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溯革。三九已至贞绳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間致稀,已是汗流浹背熔酷。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留豺裆,地道東北人拒秘。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像臭猜,于是被迫代替她去往敵國和親躺酒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內容