3

node.jsがクライアントやWebサーバーにどのように適合するかに関して、以下の私の説明は正しいですか?

  • (A)はクライアントです
  • (B)一部のWebサーバーで実行されているnode.jsです
  • (C)は、「GetCustomer()」などのビジネスロジック、データベースアクセスルーチンをホストする「サービス」です。簡単にするために、サービス(C)がRESTインターフェースを公開すると仮定します。

したがって、フローでは、クライアント(A)がnode.js(B)からリソースを要求し、次にこの要求をサービス(C)にディスパッチします。顧客情報を取得し、コールバックを介してnode.js(B)に返します。次に、node.jsはその応答をクライアントに返します。

1.これは正しいですか?

2つの関連する質問:

2. node.jsは、リクエストをディスパッチするサービスをどのように認識しますか?クライアントはサービスと直接通信していないため、サービスAPIをミラーリングするAPI「スタブ」をnode.jsに作成する必要がありますか?

3.このアーキテクチャではセッション状態はどのように処理されますか?

4

2 に答える 2

7

まず、通常の流れの「図」:

     Client                                
       |                                    
       v                                    
     Request                               
       |                                  
       v                                                          
(load balancer e.g. nginx)                
       |                                  
       v                                    
 Node.js Instance                          
 |     |      |                             
 v     v      V                            
DB    APIS   FILES                         

最後の 2 つの質問について:

  1. それをどのように知りたいですか?Node.js は、これを処理するコードを作成する必要がある汎用フレームワークです。

  2. 繰り返しますが、Node.js は完全に汎用的です。インスタンスが 1 つしかない場合は、メモリ内で実行できます。それ以外の場合は、redis などを使用する可能性があります。

Node.js でゲーム サーバーを作成したり、数値を計算したり、Web サーバーを作成したりできます。

しかし、その必要はありません。好きなように実行するか、好きなように実行するフレームワークを検索してください。

于 2011-01-25T23:56:56.877 に答える
2

Node.jsは、Webブラウザーで実行されないJavaScriptでアプリケーションを作成するためのフレームワークです。その非同期性のために、それはたまたまWebサービスを書くのが本当に得意です。(B)Node.jsはWebサーバーであり、Webサーバー(Apache)内では実行されません。(C)の場合、すべてのロジックをNode.jsアプリに含めるか、Node.jsアプリが他のサービスと通信してデータを取得できます。それは完全にあなた次第です。

2の場合、好きなようにそれを行うことができます。あなたはコードを書いています、あなたのアプリで意味のある方法でそれをしてください。

3の場合、状態は、コールバックに渡されるセッション/接続オブジェクトによって処理されます。

于 2011-01-26T05:40:22.717 に答える