【问题标题】:Re-using Backbone.js models on the server side with Node.js and Websockets通过 Node.js 和 Websocket 在服务器端重用 Backbone.js 模型
【发布时间】:2015-01-06 14:59:00
【问题描述】:

我一直在努力:

http://blog.andyet.com/2011/02/15/re-using-backbonejs-models-on-the-server-with-node

我有一些关于在服务器端共享模型的问题以及一些关于覆盖同步的问题。实时模型同步架构ftw。

  1. 型号
    所以在这个例子中,他同步了他的整个应用程序状态。我的应用程序状态的一部分是用户模型,它处理诸如登录、查找他们正在使用的平台类型等事情。我用错了吗?我在这个模型中有客户端会话数据,实际上不需要在服务器上,我应该把它放在服务器上吗?

    对于其他严格应用程序数据的模型应该与服务器同步,我如何在服务器上管理这些模型?是否有一个“视图”类型的组件来处理模型的更改并按照服务器的需要对模型进行操作?

  2. 同步
    我想覆盖同步方法以与服务器和任何其他需要更新数据的客户端同步。你怎么能写一个同步方法,在客户端 -> 服务器和服务器 -> 客户端工作,这样无论在哪里调用,每个人都能得到更新?

【问题讨论】:

  • 我建议不要在服务器上使用骨干网。这是一个好主意,但它只是行不通。这是一个抽象的泄漏和获取的方式
  • @Raynos 你能告诉我更多你为什么这么说,以及你将如何实施它吗?
  • 尝试使用骨干网的个人经验表明它会妨碍您。实际项目说它不是一个好用的工具。它是为客户端开发的,服务端有更好的模式。
  • @Raynos 谢谢,你有没有机会向我指出一些资源来解释在这种情况下服务端可以很好地工作的模式?我应该以类似的方式(mvc)但只是从头开始构建它吗?
  • @Raynos 我可以看到如果您的 web 应用程序直接与数据存储区通信,骨干网会感到多余。服务器上的主干对我们真正起作用的地方是当 web 应用程序与一个或多个 REST API 作为数据存储进行通信时。因此,如果您有一个与 REST api 通信的应用程序,并且还没有客户端库,那么 Backbone 作为通用客户端库的一种快速且有用的形式非常有效。

标签: javascript node.js model synchronization backbone.js


【解决方案1】:

有几个方面使主干非常适合客户端应用程序,但对于基于服务器的环境根本没有用处。

主干的核心是它的事件模块,框架是围绕它构建的(模型基本上是事件管理的集合,视图是基于模型事件更改的渲染胶水代码等......),在一个服务器:你得到的唯一真实事件是请求,或者套接字数据的各种事件,两者都由中间件和节点本身处理(并被处理)。

型号:

  • 如果您在服务器上使用某种 ORM,它应该已经提供了处理模型更改所需的事件处理。而且由于您不在服务器上进行任何动态视图更新,因此您不需要为模型提供的任何基础架构主干。

  • 如果您不使用 ORM(如实时,从未记录聊天 :),您可以使用 Backbone 的模型,但它们不适合更大的数据集或任何类型存储,最后你仍然使用下划线包裹的哈希/数组。

【讨论】:

  • 服务器端模型仍然允许验证,这可能是重用模型服务器端的最大原因。
  • 是的,您可以用于服务器端验证,但您真正想要的是重用验证和模式声明,因为大多数模式和验证已经随 ORM 包提供,并且通常是比 Backbone 自己的模型更健壮(它们仍然分别是 Object 和 Array 的包装器)。
猜你喜欢
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 2016-05-21
  • 2011-08-13
  • 1970-01-01
  • 2012-02-13
  • 2014-04-07
  • 1970-01-01
相关资源
最近更新 更多