Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在node.js服务器上重新使用主干路由、模型和视图_Node.js_Backbone.js - Fatal编程技术网

在node.js服务器上重新使用主干路由、模型和视图

在node.js服务器上重新使用主干路由、模型和视图,node.js,backbone.js,Node.js,Backbone.js,我正在尝试构建一个既可以作为SPA工作又可以作为普通应用程序工作的应用程序,而不需要尽可能多地重新编写任何代码。我的研究表明,使用节点+主干网(在服务器和客户机上)可以实现这一点。我已经找到了一些关于如何做到这一点的资源,但没有什么真正完整的。有人尝试过完整的解决方案来重新使用所有代码吗 我发现的资源: 在服务器上重新使用主干模型: 在服务器上重新使用主干视图和布局管理器: 我还发现了一些实现这一点的框架,比如(bones、derby、meteor),但我觉得使用这样的框架不是最好的解决方案,

我正在尝试构建一个既可以作为SPA工作又可以作为普通应用程序工作的应用程序,而不需要尽可能多地重新编写任何代码。我的研究表明,使用节点+主干网(在服务器和客户机上)可以实现这一点。我已经找到了一些关于如何做到这一点的资源,但没有什么真正完整的。有人尝试过完整的解决方案来重新使用所有代码吗

我发现的资源: 在服务器上重新使用主干模型:

在服务器上重新使用主干视图和布局管理器:


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

您试图实现的是
资源视图演示器
模型。请仔细阅读这篇文章。它为可以在客户端和服务器上执行的同构代码提供了急需的洞察力。它还帮助我理解了各种模型和体系结构

backbone.js使用的是传统的MVC框架,如果不进行修改,它无法在客户端和服务器上工作。因此,如果您想坚持使用backbone.js,您迟早会面临这个缺点。我也试过了,但没有找到简单的方法

我尝试在node.js上寻找RVP框架,但它仍然是新的。我建议您查看flatiron.js。它基于Resource View Presenter模型,这是我为node.js找到的唯一一个模型。在服务器/客户端上都需要实现一些更改,但这并不多。你会发现它类似于主干网


希望它能帮助您找到正确的路径。

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

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

应用程序演示:

在SPAINJ讲座上的介绍:

项目2 第二个项目是由Airbnb的Spike Brehm提交的Rendr,但尚未向公众发布。它似乎有点雄心勃勃,因为它还将主干模型和集合交换给nodejs服务器。您可以在此处阅读更多信息:

更新:已发布Rendr代码:

项目3
还有一个项目也允许在客户机和服务器之间共享主干代码:

+1,这是一个有趣的问题。为什么要在服务器上使用主干路由器?假设我们在服务器上使用主干模型和主干布局管理器,那么主干路由器和节点路由器都会有冗余代码,因为两个路由器会呈现相同的视图。那么,为什么要使用两个路由器而不是一个呢?这一点很有道理。我只是不认为你可以用同样的路由器代码。我个人会分享一些路由散列->查看地图,但会实现不同的路由机制。也许您的情况有所不同。我没有考虑共享路由哈希->视图映射,但它仍然是冗余代码,因为服务器和客户端将使用相同的布局管理器主干布局管理器(在节点中工作),因此理论上两个路由器中都存在相同的渲染代码。我不是100%确定这一点,尽管我对node和BackboneAlly+1都是新手,因为在客户端和服务器上编写类似的代码会成为一场维护的噩梦。无论如何,这是非常有趣的。我相信他们很快就会开放他们的名为Rendr的图书馆。不过有一件事需要澄清:主干不是传统的MVC框架,因为它没有单独的控制器(MVC中的“C”)。