16

我正在尝试构建一个既可用作 SPA 又可用作普通应用程序的应用程序,而无需尽可能地重写任何代码。我的研究使我相信使用节点 + 主干(在服务器和客户端上)是非常有可能的。我找到了一些关于如何做到这一点的资源,但没有一个真正完整的。有没有人尝试过重新使用所有代码的完整解决方案?

我发现的资源:在服务器上重用主干模型:http: //blog.andyet.com/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

在服务器上重用主干视图和布局管理器:http: //vimeo.com/46033641

我还找到了一些实现这一点的框架,例如(bones、derby、meteor),但我不觉得使用这样的框架是最好的解决方案,因为我仍然希望完全控制骨干网和节点。

4

2 回答 2

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 模型。在服务器/客户端上都需要进行一些更改,但这并不多。你会发现它类似于骨干。

希望它可以帮助您找到正确的道路。

于 2013-02-13T04:46:19.220 回答
5

我最近在该领域做了一些研究,发现了一些有趣的项目,它们在客户端和服务器(nodejs)上使用相同的主干代码。

项目一

第一个是 Groupon 的 Keith Norma 介绍的。他设法在客户端和服务器上重用骨干路由器+模板。

应用演示:https ://github.com/keithnorm/SpainJS-Pipedream-Demo

在 SpainJS 的演讲:http ://www.youtube.com/watch?v=jbn9c_yfuoM

项目 2

第二个项目是来自 Airbnb 的 Spike Brehm 提出的 Rendr,但尚未向公众发布。它似乎更雄心勃勃,因为它还将主干模型和集合交易到 nodejs 服务器。你可以在这里阅读更多信息:http: //nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product

更新:Rendr 代码已发布:https ://github.com/airbnb/rendr

项目 3

还有另一个项目也允许在客户端和服务器之间共享主干代码:https ://github.com/developmentseed/bones

于 2013-02-14T21:47:32.153 回答