0

我非常喜欢玩 NodeJS 和 MongoDB。我想构建一些可能是一个非常大的应用程序的东西。所以我尝试尽可能多地解耦设计应用程序。

我认为抽象持久层以使业务逻辑不知道数据是如何存储的会很好(我不确定将来是否必须将 MongoDB 换成 RDBMS)。知道这一点后,我考虑过创建一个具有数据存储所需操作的 FACADE,使用 Mediator 赞助人订阅 FACADE 操作并实施它们。该中介将使用事件侦听器连接到外观,而外观将使用事件发射器。然后,订阅中介者的模型将包含所有猫鼬模式,并将负责所有数据库/持久性问题。(有意义吗?)

我看到猫鼬对数据模型非常严格。IE。我看到预计我不会有一个 Player 原型,而是一个 PlayerSchema 和一个 PlayerModel。所以:

  • 我应该使用猫鼬数据模型吗?(这样做有什么限制/问题吗?-除了如果我关闭数据库就必须重写它们-)
  • 我应该将猫鼬数据模型转换为我的业务逻辑原型(通过这个 FACADE 组件)吗?我应该尝试另一个 ORM 来访问 MongoDB 数据吗?

我真的很想进行这些抽象,因为我对 JavaScript、Node 和所有这些技术都很陌生(所以我想测试隔离的每个部分,并且如果我看到有更好的解决方案能够切换层)。

任何建议都将受到欢迎!

4

1 回答 1

0

如果你不确定你最终会使用什么数据库,你可能想看看使用jugglingdb而不是 mongoose。这将提供您正在寻找的一些数据层抽象。

于 2012-06-27T02:08:38.670 回答