11

我来自 Java 和关系世界,并试图让我的脚湿透。我正在开发的应用程序是一个约会调度系统,在后端使用 node.js 和 MOngo,客户端在 angular.js 中。

我试图理解几个可能是我的 Java 偏见残余的关键概念。任何有关指向相关片段的帮助,教程表示赞赏。

1) 我将如何管理 Mongo/Node 中的预约、客户和服务代表之间的关系?是否创建了约会对象并在约会中存储了用户 ID 的引用?用户是否需要参考约会列表?

2) 用户 authn/authz,由于节点被用作 RESTful 服务提供者,我如何创建基于角色的控制?例如,当用户注册为服务代表时,他应该被批准。有没有可以提供帮助的模块?

3) 任何提供用户注册等报告的通用模块?

4) 人们如何管理客户端 MVC 的权限?

非常感谢任何指针。

4

2 回答 2

14

在同时拥有服务器端组件和客户端组件的情况下开发应用程序会使事情变得比只有服务器端框架更复杂一些。

  • 当使用像 AngularJS 这样的客户端框架时,所有模板都是在客户端编译的,而不是在服务器端编译的。这与传统的服务器端渲染有很大的不同。这意味着,您将发送 JSON,而不是将呈现的 HTML 发送到客户端。您的服务器本质上将成为一个带有安全位置的 RESTful API。

  • 我对 AngularJS 不是很熟悉,对 Ember 更熟悉,但你基本上会创建一个安静的服务:https ://gist.github.com/2432692 。这将在 RESTful 接口上与服务器通信。

  • 在服务器上,使用 nodejs,您将使用像 Mongoose 或类似的 ORM。您可以创建关系、文档等。请注意,您必须在服务器和客户端上复制模型。

  • MongoDB 使用 bson,一种序列化 JSON 字符串/对象的二进制编码。因为 nodejs 是使用 V8 JavaScript 引擎构建的,所以 JSON 是一种自然的对象类型,因此使用 MongoDB 非常简单。

  • NodeJS 上的 HTTP 服务器:NodeJS 为 http 服务器提供了基础实现。数量不多,但您可以响应和处理请求。没有会话、cookie、auth 支持,因此您可以使用connect构建在传统 http 服务器之上的版本,也可以使用构建在节点提供connect的普通服务器和普通服务器之上的 ExpressJS。httpExpressJS 非常容易上手,并且可以很好地与 RESTful 后端配合使用。

这很简单。如果你使用 AMD、CommonJS、Browserify 等,获取 ExpressJS,创建一个新应用程序,设置所有客户端的东西(angularJS)和模块系统......

于 2012-12-05T01:27:28.970 回答
3

我不熟悉 node.js,但是对于 mongodb 设计,您必须在“子文档”与“链接文档”之间进行选择。

1

你可以看看如何在猫鼬中构建多对多关系?.

想法是在有意义的地方检索完整的文档。例如,您可能有以下架构。

{ customer : { name: xxx },
  appointments: [ {date: xx, type : xxx .., servicerep: xxx}, {date: xx, type : xxx .., servicerep: xxx} ]
}

即使信息可能重复,对于查询,您只需点击一个文档/子文档。

4

即使它可能是客户端,也不意味着服务器不应该验证。客户端可以尽可能地验证,但服务器仍然应该验证。抱歉,我没有什么要补充的了。

于 2012-12-05T01:10:58.090 回答