2

我一直在将RefluxJS用于 Web 应用程序,并且效果很好。问题出在服务器端(节点/快递)。它使用singeltons,我还没有找到任何方法来使用它而不在会话之间混合数据。当一个用户在存储中存储一些数据时,当另一个用户(不同的会话)稍后向后端发出请求时,该数据仍然存在。即使我在请求结束时删除了数据,在处理多个请求时也可能会出现混淆。

那么,是否有一个很好的替代 Reflux 在客户端和服务器上都运行良好的替代方案?我正在寻找 Reflux 中存在的简化,同时被解耦,而不是在整个应用程序周围和整个应用程序中构建通量结构(就像 Fluxible 所做的那样)。

有什么建议么?

4

1 回答 1

0

我使用 Backbone 进行数据管理解决了同样的问题,我最终得到了这样的结果:

var Collection = Backbone.Collection.extend({})
var exported
if ( isNode ) {
  module.exports.init = function(session) {
    session.collection = new Collection()
    exported = session.collection
  }
} else {
  exported = new Collection()
}
module.exports.collection = exported

然后init(session)从你的 NodeJs 调用 f.ex:

var data = require('data')

[...]

index: function(req, res, next) {
  // attach backbone collection to the session
  data.init(req.session)
  // now you can use data.collection as normal
}

在客户端上,您可以正常要求并使用它。到目前为止,它对我们来说效果出奇的好,但我也愿意接受其他建议。

我们仅将 Backbone 用于数据管理,并使用主干事件实现类似通量的架构。

Facebook Relay 看起来也很有希望,但没有确定发布日期:https ://facebook.github.io/react/blog/2015/02/20/introducing-relay-and-graphql.html

于 2015-04-13T06:34:43.823 回答