我是一般的Node.js和服務器端JS的新手。Node.js有狀態服務器
我來自Java EE,我習慣於使用有狀態的對象(不是EJB,我使用CDI),例如,用於MVC。我的目標是保留一些與例如會議。
CDI中的Java EE知道下面的狀態範圍:
- 應用範圍的(=相同Singleton模式)
- 會話範圍(狀態保持用戶的會話生命週期,例如,在用戶登錄)
- 對話作用域(狀態保持的識別的會話,例如購物車)
- 閃光範圍的(狀態保持兩個請求之間)
如何使用數據庫只使用有狀態的對象來完成所有那些與節點沒有?
我是一般的Node.js和服務器端JS的新手。Node.js有狀態服務器
我來自Java EE,我習慣於使用有狀態的對象(不是EJB,我使用CDI),例如,用於MVC。我的目標是保留一些與例如會議。
CDI中的Java EE知道下面的狀態範圍:
如何使用數據庫只使用有狀態的對象來完成所有那些與節點沒有?
您需要像connect這樣的東西來跟蹤會話狀態,因爲這是最簡單的這些範圍。一旦你有了,你可以做如下事情。
myServer.totalRequestsServed = 0
global.totalRequestsServed = 0
req.session.user = myUser
session.user.shoppingCart = {}
req.flash("Welcome!")
這樣的助手。例如,請參見connect-flash。就像在Java世界中,是可擴展的,你需要任一服務器親和力或會話數據的外部存儲。將會話範圍數據存儲在服務器上(以及跨所有克隆進行復制)是不可擴展的。
非常感謝! ConversationScope btw是由ID(=對話ID)標識的作用域,例如長整型值,並且僅對一個會話有效。例如,它允許用戶一次有多個購物車。糟糕的用例,我知道。 – mitchkman