我使用 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