142

重複の可能性:
Node.jsをいつ使用するかを決定する方法は?

少しあいまいな場合は申し訳ありませんが、他のサーバー側言語の代わりにNode.jsを使用することの本当の利点を理解しようとしています。

私はJavaScriptの愛好家なので、おそらくNode.jsで遊ぶつもりですが、プロジェクトでそれを使用する必要があるかどうかを知りたいです。

4

4 に答える 4

98

これは、 V8上にイベント化された非同期のノンブロッキングI/Oビルドです。

つまり、GoogleJavaScriptインタープリターであるV8のすべてのパフォーマンスが向上します。JavaScriptのパフォーマンスレースはまだ終わっていないので、GoogleがV8(無料)のパフォーマンスを絶えず更新することを期待できます。

ノンブロッキングI/Oがあります。これは、I/Oを実行するための正しい方法です。これは、イベントループに基づいており、I/Oに非同期コールバックを使用しています。

HTTPサーバーの作成、TCPサーバーの作成、ファイルI/Oの処理などの便利なツールを提供します。

これは、すべてをCで最初から作成することなく、あらゆる種類のI/Oを実行するための低レベルの高性能プラットフォームです。また、非ブロッキングI / Oにより、拡張性が非常に高くなります。

したがって、高レベルのスクリプト言語を使用しながら、ノンブロッキングI / Oを使用して高度にスケーリングされた効率的なアプリケーションを作成する場合は、Node.jsを使用する必要があります。必要に応じて、Cで拡張機能を記述して、コードの一部を手動で最適化できます。

Express.jsのように、抽象化を提供するNode.js用のOSライブラリはたくさんあります。

(遅い)高レベルの抽象化ですべてを実行したい場合は、Node.jsを使用しないでください。RADが必要な場合は、Node.jsを使用しないでください。他のフレームワークに組み込まれていることを行うために大量のコードを自分で作成する必要があるため、またはNodeを使用できないために、若いプラットフォームを信頼する余裕がない場合は、Node.jsを使用しないでください。 .js、APIがまだ安定していないか、1.0未満のリリースであるため。

于 2011-04-11T09:20:16.593 に答える
29

最もよく引用される2つの利点は次のとおりです。

  • JavaScriptはサーバー側とクライアント側の両方です。学ぶべきことが少なくなり、コンテキストの切り替えが少なくなり、2つの側面でコードを再利用できるようになります。
  • ノンブロッキングI/OとChromeのV8エンジンを使用して、高速で拡張性の高いサーバーを提供します。

しかし、私にとって最も興味深い部分は、この地域で起こっている活動の量です。ノード用に開発中の非常に興味深いアイデアがたくさんあります-Node.jsモジュールのリストを確認してください。

于 2011-04-11T06:48:17.037 に答える
18

あなたがJavaScript愛好家である場合(またはそうでない場合でも)、いくつかの理由でNode.jsを使用できます/使用する必要があります。

  • これは、JavaScriptのパワーをサーバー側環境にもたらす、低レベルで軽量のスタンドアロンフレームワークです。
  • より高レベルの抽象化が必要な場合は、多数のモジュールnpmパッケージマネージャーがあり、すぐに使用できるさまざまなアプリケーションを見つけることができます。
  • 高速で邪魔にならない開発プロセス-たとえば、本格的なものを書き始めるために大量の追加ツールは必要ありません。
  • 愛好家や非常に才能のある人々でいっぱいの大きなオープンソースベースのコミュニティ。
  • リアルタイムのWeb指向アプリケーションを作成するために作られました-それは(近い)未来がどこにあるかです。
于 2011-04-11T09:04:14.320 に答える
11

個人的には、次の場合にNode.jsを使用する可能性があります。

  • HTTPプロトコルを使用しないサーバーを作成したい。
  • サーバー実装のプロトタイプを作成しています。
  • 大量のトラフィックを予期していないサーバーを作成しています(ただし、一致するC ++実装の隣にNode.js実装のプロファイルを作成したことはありません)。
  • コミュニティで積極的に活動したい(明らかに急速に成長している)。
于 2011-04-11T06:51:08.950 に答える