Javascript 使用Node.js和Websockets在服务器端重新使用Backbone.js模型

Javascript 使用Node.js和Websockets在服务器端重新使用Backbone.js模型,javascript,node.js,model,synchronization,backbone.js,Javascript,Node.js,Model,Synchronization,Backbone.js,我一直在努力: 我有一些关于服务器端共享模型的问题,还有一些关于覆盖同步的问题。实时模型同步架构ftw 型号 所以在本例中,他同步了整个应用程序状态。我的应用程序状态的一部分是用户模型,它处理诸如登录、查找他们正在使用的平台类型等事情。我使用这个错误吗?我在这个模型中有客户端会话数据,这些数据实际上不需要放在服务器上,我应该把它们放在服务器上吗 对于严格属于应用程序数据且应与服务器同步的其他模型,如何在服务器上管理这些模型?是否有一个“视图”类型的组件,它处理对模型的更改,并按照服务器需要的方

我一直在努力:

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

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

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

  • 同步
    我想覆盖sync方法以与服务器和需要更新数据的任何其他客户端同步。您如何编写一个同步方法,使之在客户端->服务器和服务器->客户端之间工作,以便无论在何处调用,每个人都能得到更新


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

    主干网的核心是其事件模块,框架是围绕该模块构建的(模型基本上是事件管理的集合,视图是基于模型事件更改进行呈现的粘合代码,等等),在服务器上几乎毫无用处:您得到的唯一真实事件是请求,或套接字数据的各种事件,这两者都由中间件和节点本身处理(并负责)

    型号:

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

    • 如果您不使用ORM(与实时、从不记录聊天:)一样,您可以使用主干网的模型,但它们不适合较大的数据集或任何类型的存储,最后您仍然使用下划线包装的哈希/数组


    我建议不要在服务器上使用主干网。这是个好主意,但就是行不通。这是一种抽象,它会泄露并获取way@Raynos你能给我一些更多的信息吗?你为什么这么说,以及你将如何着手实施它?尝试使用主干网的个人经验表明这是一个障碍。真正的项目说它不是一个好工具。它是为客户端开发的,服务器有更好的模式。@Raynos谢谢,你能给我指一些资源来解释一种模式吗?在这种情况下,服务端可以很好地工作?我是否应该用类似的方式(mvc)来实现它,但只是从头开始构建它?@Raynos我可以看出,如果您的Web应用程序直接与数据存储进行通信,主干网将感觉多么冗余。对于我们来说,服务器上的主干真正起作用的地方是当webapp作为数据存储与一个或多个restapi进行通信时。因此,如果你有一个与REST api对话的应用程序,而且还没有用于它的客户端库,那么主干网作为一种快速而有用的通用客户端库的形式工作得非常好。服务器端模型仍然允许进行验证,这可能是重用服务器端模型的最大原因。是的,你可以用于服务器端验证,但您真正想要的是重用验证和模式声明,因为大多数模式和验证已经随ORM包提供,并且通常比主干网自己的模型(它们仍然分别是对象和数组的包装器)更健壮。