我是一般的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