2016-07-25 77 views
-1

我有一個場景,我試圖在一個node.js文件中設置一個會話變量,然後在另一個node.js中訪問相同的會話變量。訪問不同node.js文件之間的會話變量

我不確定我是否需要在每個node.js文件中進行兩次表達。

有誰知道如何在一個node.js文件中設置會話變量,然後調用另一個node.js文件中的函數來訪問相同的會話變量?

任何建議將不勝感激。

+0

有很多方法可以在兩個不同的模塊之間共享一個值。作爲Express服務器一部分的會話值通常在多個路由處理程序或中間件處理程序之間共享。我們需要看你的代碼給你一個答案,因爲你基本上都在問Express和模塊是如何工作的。 –

回答

0

會話變量通常僅在代表特定用戶的請求上下文中有意義(因爲會話屬於特定用戶)。

因此,如果您在處理請求的過程中想要在另一個模塊中使用某些功能,並且其他功能需要訪問當前請求的會話狀態,那麼您通常只需將req對象傳遞給另一個模塊的方法,以便它可以訪問與該請求相關聯的會話。

如果出於某種原因,當您認爲需要訪問會話信息時未處理請求,請解釋更多關於您正在做的事情的信息,因爲您必須訪問用戶標識符是會話存儲的關鍵,以便找到正確的會話。


請記住,會話是每個用戶,可以有無數的會員。您不要將它們存儲在模塊變量中。他們住在會議商店,並通過用戶密鑰(通常在cookie中)進行訪問。

因此,一個會話只在特定用戶的上下文中有意義,並且通常位於特定請求的上下文內,這使得您可以直接訪問該會話。因此,如果您需要在另一個模塊中使用函數,並且該函數需要訪問會話,則只需將用戶會話本身的req對象作爲方法調用的參數傳遞給另一個方法即可。


與往常一樣,我們可以回答更加明確,以你的具體問題,如果你告訴我們您的實際代碼我們展示你正在試圖解決真正的問題。像這樣的一般問題會導致我們不得不教導一個廣泛的通用解決方案,我們可能會或可能不會達到您想要做的事情的確切標誌,並且需要更多的詞彙而不僅僅是向您展示您自己的幾行代碼適合於解決問題。