最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js重新刷新session過期時間的方法

 更新時間:2016年02月04日 09:00:15   作者:Jaxu  
在Node.js中,我們通常使用express-session這個包來使用和管理session,保存服務(wù)端和客戶端瀏覽器之間的會話狀態(tài)。那如何才能實現(xiàn)當用戶刷新當前頁面或者點擊頁面上的按鈕時重新刷新session的過期時間呢,接下來通過本文一起學習吧

在Node.js中,我們通常使用express-session這個包來使用和管理session,保存服務(wù)端和客戶端瀏覽器之間的會話狀態(tài)。那如何才能實現(xiàn)當用戶刷新當前頁面或者點擊頁面上的按鈕時重新刷新session的過期時間呢?類似于ASP.NET中session會話狀態(tài),只要在一定的時間內(nèi)頁面一直保持活動狀態(tài),session就不會過期。通過下面的代碼可以實現(xiàn)這個功能,我們在Node.js的代碼中加入下面的中間件:

// use this middleware to reset cookie expiration time
// when user hit page every time
app.use(function(req, res, next){
req.session._garbage = Date();
req.session.touch();
next();
}); 

  這樣,每次當有請求過來時,該中間件都會重新修改session的過期時間,從而達到預(yù)期的效果。

  然后,在代碼中加入對session的使用:

app.use(session({
secret: 'test', 
resave: false, 
saveUninitialized: true,
cookie:{
maxAge: 1000*60*60 // default session expiration is set to 1 hour
},
store: new MemcachedStore({
hosts: ['127.0.0.1:9000'],
prefix: 'test_'
})
})); 

  上面的session使用了memcached作為session的存儲方式,有關(guān)如何使用memcached可以參考Github上的這個地址https://github.com/balor/connect-memcached

  當然,你也可以使用其它的session存儲方式,例如memoryStore,redis,mongoDB等等,使用方法都大同小異。

下面給大家說說Node.js session 存儲的幾種方法

node.js session store 有可選的四種方法的性能測試如下:

Concurrency: 1
none 4484.86 [#/sec] 
memory 2144.15 [#/sec] 
redis 1891.96 [#/sec] 
mongo 710.85 [#/sec] 
Concurrency: 10
none 5737.21 [#/sec] 
memory 3336.45 [#/sec] 
redis 3164.84 [#/sec] 
mongo 1783.65 [#/sec] 
Concurrency: 100
none 5500.41 [#/sec] 
memory 3274.33 [#/sec] 
redis 3269.49 [#/sec] 
mongo 2416.72 [#/sec] 
Concurrency: 500
none 5008.14 [#/sec] 
memory 3137.93 [#/sec] 
redis 3122.37 [#/sec] 
mongo 2258.21 [#/sec]

對比得出redis來存儲在并發(fā)性越多的情況下性能優(yōu)越。

The session used pages are very simple pages;

app.get("/", function(req,res){
if ( req.session && req.session.user_id){
req.session.no = req.session.user_id;
} else {
throw Error('error');
}
res.send("No: " + req.session.no);});

Redis store config:

app.use(express.session({
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 2,
}),
secret: 'hello'}));

Mongo store config:

app.use(express.cookieParser());app.use(express.session({
store: new MongoStore({
url: 'mongodb://localhost/test-session'
}),
secret: 'hello'}));

在使用mongodb存儲時別忘記在加載一個模塊:connect-mongo

相關(guān)文章

  • Nodejs 微信小程序消息推送的實現(xiàn)

    Nodejs 微信小程序消息推送的實現(xiàn)

    這篇文章主要介紹了Nodejs 微信小程序消息推送的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Node.js中的CommonJS模塊化規(guī)范詳解

    Node.js中的CommonJS模塊化規(guī)范詳解

    這篇文章主要介紹了Node.js中的CommonJS模塊化規(guī)范,本文主要介紹了?CommonJS?規(guī)范在?Node?中的簡單應(yīng)用,主要就是導(dǎo)入和導(dǎo)出模塊,需要的朋友可以參考下
    2023-02-02
  • Express實現(xiàn)定時發(fā)送郵件的示例代碼

    Express實現(xiàn)定時發(fā)送郵件的示例代碼

    在開發(fā)中我們有時候需要每隔?一段時間發(fā)送一次電子郵件,或者在某個特定的時間進行發(fā)送郵件,無需手動去操作,基于這樣的情況下我們需要用到了定時任務(wù)。本文就來用Express實現(xiàn)定時發(fā)送郵件吧
    2023-04-04
  • 微信小程序在線客服自動回復(fù)功能(基于node)

    微信小程序在線客服自動回復(fù)功能(基于node)

    這篇文章主要介紹了微信小程序在線客服自動回復(fù)功能(基于node),由于小程序嵌套webview時需要校驗域名,因此跳轉(zhuǎn)到第三方應(yīng)用市場和Appstroe無法實現(xiàn)導(dǎo)流。那怎么辦呢,需要的朋友可以參考下
    2019-07-07
  • NodeJS中的命令行程序、工程目錄、NPM

    NodeJS中的命令行程序、工程目錄、NPM

    使用NodeJS編寫的東西,要么是一個包,要么是一個命令行程序,而前者最終也會用于開發(fā)后者,一般我們會同時提供命令行模式和API模式兩種使用方式,并且我們會借助三方包來編寫代碼,NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題
    2023-11-11
  • Node.js使用JSONP接口的具體用法

    Node.js使用JSONP接口的具體用法

    JSONP是一個跨域解決方案,本文主要介紹了Node.js使用JSONP接口的具體用法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • node使用async_hooks模塊進行請求追蹤

    node使用async_hooks模塊進行請求追蹤

    這篇文章主要介紹了node使用async_hooks模塊進行請求追蹤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • 說說node中的可讀流和可寫流的區(qū)別

    說說node中的可讀流和可寫流的區(qū)別

    這篇文章主要介紹了說說node中的可讀流和可寫流的區(qū)別,詳細的介紹了可讀流和可寫流,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • node?NPM庫string-random生成隨機字符串學習使用

    node?NPM庫string-random生成隨機字符串學習使用

    這篇文章主要為大家介紹了node?NPM庫string-random生成隨機字符串學習使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Node.js Streams文件讀寫操作詳解

    Node.js Streams文件讀寫操作詳解

    如果你在處理應(yīng)用中 I/O 相關(guān)的操作,你可以利用 Node.js 中的流(stream),這篇文章主要為大家詳細介紹了Node.js Streams文件讀寫操作,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論

新和县| 栾川县| 海阳市| 西乡县| 恩施市| 吉安市| 金山区| 河东区| 本溪| 泾川县| 屏山县| 台前县| 冷水江市| 安远县| 栾城县| 北海市| 调兵山市| 洛宁县| 乐亭县| 冷水江市| 桦川县| 长白| 惠州市| 灵石县| 康定县| 辽宁省| 晴隆县| 临邑县| 平利县| 滁州市| 清涧县| 涿鹿县| 荥阳市| 安乡县| 聂拉木县| 鹤山市| 镇坪县| 宁城县| 休宁县| 靖安县| 扎囊县|