Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
如何重现Backbonejs模型&;node.js服务器端的集合_Node.js_Oop_Backbone.js_Models - Fatal编程技术网

如何重现Backbonejs模型&;node.js服务器端的集合

如何重现Backbonejs模型&;node.js服务器端的集合,node.js,oop,backbone.js,models,Node.js,Oop,Backbone.js,Models,我是nodejs的新手,但我对客户端和服务器之间可能存在的通用语言和习惯用法感到兴奋 有谁知道有一个nodejs框架为我们在backbonejs客户端上使用的模型提供了相同的OO习惯用法和类功能?我发现在主干模型和集合以及节点中手动滚动的javascript类之间切换很不协调 控制器被发射器和回调所取代,当然也没有视图,但我是否错误地希望客户端和服务器端模型具有一致的OO范式?我是否应该使用数据库无关的OOP来实现这个目标,比如Redis 如果这个问题对SE来说太模糊,请随意关闭我。使用Back

我是nodejs的新手,但我对客户端和服务器之间可能存在的通用语言和习惯用法感到兴奋

有谁知道有一个nodejs框架为我们在backbonejs客户端上使用的模型提供了相同的OO习惯用法和类功能?我发现在主干模型和集合以及节点中手动滚动的javascript类之间切换很不协调

控制器被发射器和回调所取代,当然也没有视图,但我是否错误地希望客户端和服务器端模型具有一致的OO范式?我是否应该使用数据库无关的OOP来实现这个目标,比如Redis


如果这个问题对SE来说太模糊,请随意关闭我。

使用Backbone.js时,客户端上应该有一组模型,这些模型从服务器获取,并通过REST api(CRUD)更新到服务器。客户端负责MVC,服务器只回答一系列简单的查询、删除和更新

这意味着客户端可能包含以下代码:

  • 模型
  • 观点
  • 路由器
  • 模板(HTML)
  • 收藏
  • 乌提尔斯
  • 第三方LIB
服务器将具有:

  • 模式(用于需要存储在数据库中的模型)
  • 模型
  • 乌提尔斯
  • restful api响应的服务器代码(例如express.js)
  • 自由基
所以。。。客户端和服务器之间应该共享哪些代码? 一些实用程序,可能是模型。。。。(尽管我认为不应该共享模型代码)

基本上,尽管我们(开发人员)都对在客户端和服务器之间共享代码感到兴奋,但用例、角色和职责并不真正需要这种耦合。(至少我是这样的)

顺便说一下,有些例外情况下,您希望在服务器上实现相同的MVC,以实现快速渲染和搜索引擎遵从性,airBnb正在使用主干网和节点来实现这一点。一旦他们稳定了API,他们将在那里开放源代码解决方案

编辑

根据我的经验,主干模型是非常精简的纯数据对象(以及一些验证代码)。观众观察并改变它们,所以大部分代码都在那里。我认为在这种情况下,将代码从服务器分离到客户机是一个很好的设计决策,它允许您在不更改客户机的情况下使用DB模式

但当然,这在其他用例中可能有所不同

关于您的实际问题:

您可以查看airBnB项目Rendr:()

Rendr是Airbnb的一个小型库,允许您在客户端和服务器上无缝运行主干网.js应用程序。允许您的web服务器向应用程序的任何深度链接提供完整格式的HTML页面,同时保留传统的Backbone.js客户端MVC应用程序的简洁感


我认为您为“瘦服务器”应用提供了一个很好的案例,其中的API只不过是数据存储和其他第三方服务的持久性和控制器逻辑。但是,如果后端服务也需要与模型一起工作来抽象关于它们的服务,该怎么办?