2013-07-04 7 views
7

Node.jsMongoDBのデータベースを構築しましたが、データベースからエントリを呼び出すだけでなく、それらのエントリに書き込むことができるAngular.jsアプリケーションを作成しています。MongoDBをフロントエンドに接続していますか?

JavaScriptからデータベースに直接書き込む際にいくつかのセキュリティ上の問題があることは知っていますが、私はこのようなことを全く考えていません。さらに、実際に使用できるように、MongoDBからフロントエンドにデータを送信する方法についての指示はありません。

どのように2つを結びつけるのですか? Node.jsでは、私のデータベースにロードしてそこから読み書きするためにjavacript require関数を使用していましたが、ブラウザでこれを行う方法を見つけることができません。 node私はmongojsモジュールを使用して2つのモジュールを接続していましたが、これは角度アプリでは機能しません。requireを使用できません。

主な質問は、MongoDBでフロントエンドにどのようにロードするのですか?

EDIT:これは、MongoDBを角度固有ではなくフロントエンドに呼び出すことに関するより基本的な質問だと思います。私が間違っているなら、私に知らせてください。

+2

私は理解できません。ブラウザからデータベースに直接接続したいですか?これは**非常に**悪い考えです。つまり、NodeJS(またはその他のWebサーバー)を使用する理由は:DBからWebServerにデータをロードし、そこからHTML/JSON /任意の形式に結合し、HTTP経由でブラウザに送信します。 – freakish

+0

フロントエンドでmongojsモジュールを使用する際に、どのような問題がありましたか? [RequireJS](http://requirejs.org/)のようなモジュールローダーが必要です。 –

答えて

11

短い回答:あなたはありません。

長い回答: MongoDBはクライアントに直接データを公開するようには設計されていません。クライアントは、あなたのケースではNode.jsに実装されているWebサーバー上のアプリケーションと対話し、Webサーバーはデータベースと通信します。

+---------+ +---------+ +---------+ 
|Browser | | Node.js | | MongoDB | 
|  ------->  | |   |  
|   | |   | |   | 
|   | |  ------->  | 
|   | |   | |   | 
|   | |   | |   | 
|   | |  <-------  |  
|   | |   | |   | 
|  <-------  | |   | 
|   | |   | |   | 
+---------+ +---------+ +---------+ 

これは、ユーザーのブラウザで実行されるJavaScriptクライアントアプリケーションが(XmlHttpRequestの経由WebSocketをまたは他のいくつかのメソッドを介して、通常のページ要求を経由して)のNode.jsに要求を送信することを、実際に意味しています。 Node.jsはこの要求を受け入れ、それを実行するために必要なデータをMongoDBに問い合わせます。 Node.jsは、データベースからデータを受信すると、それを使用してレスポンスを作成し、クライアントに送信します。

クライアントアプリケーションは、サーバーがバックエンドデータベースを使用して要求を実行していることを認識しません。

の学習指導は、今のところデータベースを残しておくことです。 angular.jsを使用して、クライアントがNode.jsサーバアプリケーションから静的なデータをロードするようにします。これが有効になったら、サーバー側を拡張してMongoDBからデータを取得します。

+1

私は実際にあなたの学習の勧告を既に行っています - 私が書いたAngularJSアプリケーションはJSON経由でデータに読み込みます。問題は、私は実際にDBをフロントエンドにリンクする方法を理解していません(また、私の広範な検索で見つけることもできませんでした)。私は仲介人としてノードを使用してうれしく思いますが、クライアント - >ノード - > dbの実装は見たことがありません。あなたは私がこれについてもっと学ぶことができる資源を提案することができますか?私は主にフロントエンドの開発者ですので、これは私の頭の上に方法です。 – Jascination

関連する問題