2012-09-06 19 views
0

我想在會話銷燬時執行一些操作。 我正在使用來自senchalabs的連接模塊和express應用程序的模塊。NODEJS中的某些操作後銷燬會話

+0

你需要更具體一些,從「會話破壞」的含義開始。 – ebohlman

+0

如果舊會話被程序或其他方法手動銷燬,我想獲取以前的會話數據。因爲我在會話和全局數據中都存儲了一些數據,所以我需要從每次會話中刪除全局數據或每次重新生成的會話 – Dexter

回答

1

session#destroy方法不會發出任何可以在應用程序的其他部分偵聽的事件,但是如果您想在會話銷燬後立即運行一些代碼,則可以將其包含在回調中。

// Example variable 
var numOfUsersOnline = 100 

req.session.destroy(function(err){ 
    // This get's run right after the session gets destroyed. 
    // You can put any code you want run in here, for example 

    // Descrease the number of users online 
    numOfUsersOnline--; 
}); 
+0

我想在會話被銷燬前執行。 – Dexter

+0

你需要更具體些。如果你希望它在會話銷燬之前運行,那麼你只需在'req.session.destroy'之前放置該代碼即可。 –

+0

每當創建新會話時,我都會創建一個帶有時間戳的數組。但是當會話重新生成時,我將從數組中刪除特定會話及其時間戳。現在我以這種方式處理:1.在會話是新的時候,將會話和時間戳記推入數組中。 2.重新生成新會話時,從陣列中刪除會話及其時間戳。但有時候我有一個場景,在刪除之前我得到了未定義的會話。 – Dexter