2017-01-29 25 views
1

NodeJSを学習していて、いくつかの例を作成しようとしました。この目的のために私が従ったチュートリアル、ブログ、またはビデオは、どのようにExpressとMongo dbを使ってWebアプリケーションを作成したかによって終了しました。ノードJSを使用してREST APIとMVC Webアプリケーションを作成する理由

ここで私が読んだときに最も反復された文の1つは、ノードがイベントと非同期プログラミングを扱う方がはるかに優れているため、イベントベースのアプリケーションがチャットサーバのようにノードの機能を確実に利用できることです処理が十分でない可能性があります)。しかし、これらのアプリケーションはごくわずかでした。

ここでは、Webアプリケーション(またはREST API)の作成方法がイベントの良さをどのように利用しているかを理解することはほとんど興味がありません。ノードを理解している間に私が見逃したことがあり、チャットサーバー以外のノードの他のアプリケーションがありますか?それは、Node.jsのは、同じように使用すべき場所の例をいくつか持っている

+0

なぜそうではありませんか?彼らは多くの人々が他のほとんどの言語で書くことに興味を持っていることです! – jonrsharpe

+0

http://blog.slaks.net/2014-12-23/parallelism-async-threading-explained/ – SLaks

+0

https://www.toptal.com/nodejs/why-the-hell-would-i-use-ノード-js –

答えて

0

API/WebServerの例を思いついてみましょう。

Node.jsは基本的にJavaScriptコードを実行するので、明らかに非同期です。つまり、基本的には(例えば、ディスクI/Oやデータベース要求など)を「他の誰か」(たとえばカーネル、ネイティブDBライブラリ)に負荷をかけようとします。それが完了したら、他のタスクの作業を続けることができます。したがって、ノンブロッキングです。

静的なHTML、js、...ファイルを提供し、APIを提供しているウェブサーバーを考えてみましょう。基本的には、サーバが行う仕事は、「そのファイルを提供する」(=ディスクI/O)や(APIの場合)データベースからデータを取得するようなものです。これらのタスクはノード環境では実行されないため、ノードアプリケーション自体は(他のボトルネックがないと仮定して)多くの要求を処理できます。

さらに、ノードはシングルスレッドです。他の言語のように、スレッドがより長い期間ブロックされるという問題がないため、標準的なユースケースでは複数のスレッドを必要としません。これは、パラレルプログラミングに伴うすべての問題に対処する必要がないので、私の意見では作業するのがずっと簡単です。しかし、WebサーバーやAPI領域では比較的まれなCPU集中型タスクについては、これが問題になる可能性があります。

関連する問題