使用mongodb存储在客户端和服务器端共享骨干代码

时间:2012-02-06 15:47:32

标签: mongodb backbone.js

我正在寻找一种代码解决方案,只能为基于主干,mongodb,nodejs的app的模型编写代码。

存储只能是服务器端,但我仍然需要在服务器和客户端上进行适当的模型定义。在服务器端,我决定使用mongodb。

毕竟我发现的唯一的事情是https://github.com/donedotcom/backbone-mongodb

我认为我已经很好地理解了骨干,但之前从未使用过mongodb,而且我无法弄清楚如何真正使用backbone-mongodb。有人能告诉我它是如何补充主干,Document和EmbeddedDocument的意图以及它们与Backbone.Model的关系?这与代码共享黑白客户端和服务器有什么关系吗?

当然,我的想法是分享模型定义和验证(主要通过骨干验证完成),而不是服务器和客户端。

谢谢,Viktor

2 个答案:

答案 0 :(得分:2)

我刚刚重写了backbone-mongodb

还有an example todo application(继续提交eb935ae7480c18c9d6fcf2f5a2187cdff3d17a13)

答案 1 :(得分:1)

<强> TL; DR

  • Document&lt; - &gt; Backbone.Model
  • 通过覆盖Backbone.sync来读取和写入Node.js上的数据。
  • EmbeddedDocument没有完全匹配:可能可以通过Backbone-relational实施,需要一些装配。

长读

由于MongoDB是一个以文档为中心的数据库Backbone.Model,因此很适合Mongo的Document。您可以考虑MongoDB的文档,就好像您可以存储可搜索的JSON blob(为了开始使用而进行简化,但仍然如此)。它们或多或少会与Backbones Models完全匹配。 EmbeddedDocument对传统关系系统中的相关表有些对应(再次说明,同样的原因)。它们在Backbone世界中没有完全匹配,但您可以使用Backbone-relational在Node应用程序中处理它们。我没有尝试过,但我做了一个合格的猜测,它需要一定数量的手持。

在Node端,您需要覆盖Backbone.sync,可能是全局的,以便将Model个对象读写到MongoDB文档中。

此外,嵌入式文档只是 - 它们是内部存储的实际数据,而不是独立存储的数据的链接(docs)。也可以做链接,更像传统关系(见同一链接)。

为了能够使用这种组合正确编程,我认为你应该至少阅读一下MongoDB,这里有一些指示: