11

私はJavaとリレーショナルの世界から来て、足を濡らそうとしています。私が取り組んでいるアプリは、バックエンドで node.js と MOngo を使用する予定スケジューリング システムであり、クライアントは angular.js にあります。

私は、私の Java バイアスの名残かもしれないいくつかの重要な概念を理解しようとしています。関連するスニペット、チュートリアルを指摘する際の助けをいただければ幸いです。

1) Mongo/Node で、予約、顧客、およびサービス担当者の間の関係をどのように管理しますか? 予定オブジェクトが作成され、ユーザー ID の参照が予定に保存されますか? ユーザーは予定のリストへの参照を持っている必要がありますか?

2) ユーザー authn/authz。ノードは安らかなサービス プロバイダーとして使用されているため、役割ベースの制御を作成するにはどうすればよいですか? たとえば、ユーザーがサービス担当者としてサインアップする場合、そのユーザーは承認される必要があります。役立つモジュールはありますか?

3) ユーザーのサインアップなどに関するレポートを提供する一般的なモジュールはありますか?

4) クライアント側の MVC で権限を管理するにはどうすればよいですか?

どんなポインタでも大歓迎です。

4

2 に答える 2

14

サーバー側のコンポーネントとクライアント側のコンポーネントの両方を持つアプリケーションを実行すると、サーバー側のフレームワークだけを使用するよりも少し複雑になります。

  • AngularJS のようなクライアント側フレームワークを使用する場合、すべてのテンプレートはサーバー側ではなくクライアント側でコンパイルされます。これは、従来のサーバー側レンダリングとの大きな違いです。つまり、レンダリングされた HTML をクライアントに送信する代わりに、JSON を送信します。サーバーは基本的に、セキュリティの配置を備えた RESTful API になります。

  • 私は AngularJS にはあまり詳しくなく、Ember には詳しくありませんが、基本的に安らかなサービスを作成します: https://gist.github.com/2432692。これは、RESTful インターフェイスでサーバーと通信します。

  • サーバーでは、nodejs を使用して、Mongoose などの ORM を使用します。リレーションシップ、ドキュメントなどを作成できます...サーバーとクライアントの両方でモデルを複製する必要があることに注意してください。

  • MongoDB は、シリアル化された JSON 文字列/オブジェクトのバイナリ エンコーディングである bson を使用します。nodejs は V8 JavaScript エンジンを使用して構築されているため、JSON は自然なオブジェクト タイプであり、MongoDB での作業は非常に簡単です。

  • NodeJS 上の HTTP サーバー: NodeJS は、http サーバーの基本実装を提供します。たいした額ではありませんが、リクエストに応えて処理することができます。セッション、Cookie、認証のサポートがないため、従来の http サーバーの上に構築されたものを使用するか、ノードが提供する通常のサーバーとconnect両方の上に構築された ExpressJS を使用できます。ExpressJS は非常に簡単に使い始めることができ、RESTful バックエンドとうまく連携します。connecthttp

とてもシンプルです。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} ]
}

情報が重複している可能性がありますが、クエリの場合、ヒットするドキュメント/サブドキュメントは1つだけです。

4

クライアント側の場合でも、サーバーが検証すべきではないという意味ではありません。クライアントは可能な限り最善の方法で検証できますが、サーバーはそれでも検証する必要があります。申し訳ありませんが、追加するものはもうありません。

于 2012-12-05T01:10:58.090 に答える