开始使用Node.js,angular.js和MongoDB,build模关系和其他斜坡提示

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

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

1)如何pipe理Mongo / Node中的预约,客户和服务代表之间的关系? 约会对象是否被创build并且存储在约会中的用户标识的引用? 用户是否需要参考预约列表?

2)用户authn / authz,因为节点正在作为宁静的服务提供商如何创build基于angular色的控制? 例如,当用户注册为服务代表时,他应该被批准。 有一个模块可以帮助吗?

3)任何通用模块,用户报名等报告?

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

任何指针,不胜感激。

在同时拥有服务器端组件和客户端组件的情况下执行应用程序会让事情变得更复杂一些,而只是有一个服务器端的框架。

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

  • 我不是非常熟悉AngularJS,更多的是Ember,但是实际上你可以创build一个宁静的服务: https : //gist.github.com/2432692 。 这将与RESTful界面上的服务器进行通信。

  • 在服务器上,使用nodejs,你会使用像Mongoose或类似的ORM。 您可以创build关系,文档等等。一个注释,您将不得不在服务器和客户端上复制模型。

  • MongoDB使用bson,一个序列化的JSONstring/对象的二进制编码。 由于nodejs是使用V8 JavaScript引擎构build的,因此JSON是一种自然的对象types,所以使用MongoDB非常简单。

  • NodeJS上的HTTP服务器:NodeJS为http服务器提供基本的实现。 这并不多,但你可以响应和处理请求。 没有会话,cookie,auth支持,所以你可以使用传统的http服务器上build立的connect ,或者使用在connect和节点提供的普通http服务器上构build的ExpressJS。 ExpressJS非常容易上手,并且适用于RESTful后端。

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

我不熟悉node.js,但是对于mongodbdevise,您必须在“子文档”和“链接文档”之间进行select。

1

你可以看看如何在mongoose中构build多对多的关系吗? 。

想法是检索一个完整的文件,它是有道理的。 例如,你可能有以下模式。

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

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

4

即使它可能是客户端,但并不意味着服务器不应该validation。 客户端可以尽可能validation,但服务器仍然应该validation。 对不起,我没有再添加。