我正在尝试构建一个既可以作为SPA又可以作为普通应用程序运行的应用程序,而无需尽可能重写任何代码。我的研究使人们相信使用node + backbone(在服务器和客户端上)都可以实现这一点。我找到了一些关于如何做到这一点的资源,但没有真正完整的。有没有人尝试过重新使用所有代码的完整解决方案?
我找到的资源: 在服务器上重用骨干模型:http://blog.andyet.com/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/
在服务器上重用骨干视图和布局管理器: http://vimeo.com/46033641
我还发现了一些实现这一目标的框架,例如(骨头,德比,流星),但我不觉得使用这样的框架是最好的解决方案,因为我仍然希望完全控制骨干和节点。
答案 0 :(得分:6)
您尝试实施的是Resource-View-Presenter
模型。请完整阅读本文http://blog.nodejitsu.com/scaling-isomorphic-javascript-code。它为可以在客户端和服务器上执行的同构代码提供了非常需要的洞察力。它还帮助我理解了各种模型和架构。
backbone.js使用的是传统的MVC框架,它无法在没有修改的情况下在客户端和服务器上运行。因此,如果你想坚持使用backbone.js,你迟早会面临这种劣势。我也试过骨干,发现没有简单的方法。
我尝试在node.js上寻找RVP框架,但它仍然是新的。我建议你看看flatiron.js http://flatironjs.org/。它基于Resource-View-Presenter模型,这是我能为node.js找到的唯一模型。在服务器/客户端上都需要进行一些更改,但并不多。你会发现它与骨干相似。
希望它能帮助您找到正确的道路。
答案 1 :(得分:5)
我最近对该领域进行了一些研究,发现了一些在客户端和服务器(nodejs)上使用相同骨干代码的有趣项目。
第一个是由Groupon的Keith Norma介绍的。他设法在客户端和服务器上重用骨干路由器+模板。
应用演示:https://github.com/keithnorm/SpainJS-Pipedream-Demo
在SpainJS上的演讲:http://www.youtube.com/watch?v=jbn9c_yfuoM
第二个项目是来自Airbnb的Spike Brehm提出的Rendr,但尚未向公众发布。它似乎有点雄心勃勃,因为它还将主干模型和集合交易到nodejs服务器。您可以在此处详细了解:http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product
更新:已发布Rendr代码:https://github.com/airbnb/rendr
还有另一个项目允许在客户端和服务器之间共享骨干代码:https://github.com/developmentseed/bones