17

node.js を使用する理由について私が読んだ最も一般的なテーマは、イベント化されたノンブロッキング I/O モデルによる高いスケーラビリティです。私は他の非スケーラビリティの使用例を理解しようとしています (そして、一般的なサーバー側の JavaScript エンジンとして使用されることは別として)。

  1. スケーラビリティが私の懸念事項でない場合、node.js には他のユースケースがありますか?
  2. #1に「はい」の場合、それらは何ですか?
  3. node.js の使用は、特定のタイプのアプリケーション アーキテクチャに適していますか? たとえば、一部のキー/値 (nosql - この用語は嫌いです) データベースがスケーラビリティ以外の理由で有用であるのと同様です。
4

6 に答える 6

8

node を試す理由は、サーバーとクライアントの間で ajax リクエストのために JSON データを送信するのが非常に簡単だからです。データを JSON オブジェクトとして保存する MongoDB のようなものを使用する場合、データの変換や解析について心配する必要はありません。

サイトで多くの ajax を使用していて、データを (XML やプレーン テキストではなく) JSON オブジェクトとして送信している場合、node.js を使用するとかなりの労力を節約できます。

于 2011-01-25T21:45:23.923 に答える
4

このブログ投稿はそれを非常にうまくまとめていると思います: http://debuggable.com/posts/understanding-node-js: 4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb

要するに(pro node.js):

  • スピード
  • Javascript(特にすでに知っている場合)
  • 効率

node.jsは本当に素晴らしいです。試してみる!:)

于 2011-01-25T21:24:30.453 に答える
2

正確には、あなたの質問の一般的なサーバー側JavaScriptエンジンはV8だと思いますが、その作成者によると、ノードは「スクリプトネットワークプログラム」用に構築されています。

彼のコメントの多くに基づいて、私は彼がそれを私たちの多くのように広く見ているとは思わないが、それがどこに行くことができるかを認識している。[私は他の人のために話すことはできません-それは私が見た文章とプレゼンテーションに基づいた私の解釈です。]

つまり、それはやや低いレベルから物事にアプローチし、HTTPを一級市民にし、たまたま本当にクールであり、それは私たちのほとんどにとって十分な「ユースケース」になると思います。;)

学習曲線があり、急速に発展しているため、構築するのに最も安定したプラットフォームではありません。時間はそれが最も役立つ場所を教えてくれると信じています。

今のところ、軽量で非同期の性質と一般的なWeb開発のために、人々は「リアルタイム」アプリに使用していますが、IMOのスイートスポットは当初の目的のままです。

于 2011-01-26T17:25:14.133 に答える
2

一つの理由が考えられますが、それほど深くはありません。基本的に、RIAを開発している場合、スタック全体をjavascriptにすることができます。それには価値があるかもしれません。

しかし、私自身の答えに疑問を投げかけます。つまり、クライアント側の開発者がサーバー側のコードにアクセスしやすくなったとしても、サーバースタックがどのように機能するかを理解する必要があるという考えです。ですから、まだ学ぶことがあります。

于 2011-01-25T20:05:46.483 に答える
1

ノンブロッキング I/O モデル、スケーラビリティ、およびすべての「主な理由」を除けば、node.js について私が気に入っているのは次のとおりです。

  • フレームワークの軽量性。基本は簡単に学べます。
  • node.js 軽量コアとその機能を拡張する、github で大量の有用なモジュールとライブラリを構築する開発者コミュニティ。
  • 複雑なライブラリの知識がなくても、サーバー側およびリアルタイム システム (たとえば、http またはソケット ベース) を構築するのは非常に簡単かつ迅速です。
于 2011-01-25T22:11:27.090 に答える
1

スタブ/サーバー/クライアントを非常に迅速に作成できるため、NodeJS を使用してテスト ハーネスを作成するのが好きです。また、アプリケーションを簡単に実行できます。サードパーティのバックエンド サーバーを簡単にスクリプト化して、アプリケーションのパフォーマンス テストを実行できます。また、アプリケーションを駆動するためにも使用します。setTimout を使用して複雑なクライアント サーバー シナリオを実行し、必要なロジックに基づいて複数のイベントをトリガーし、それらを大規模にテストできます。

于 2011-10-26T22:46:27.480 に答える