Learning site for website creation

Node.jsとは

公開日:2021年12月29日

Node.jsはJavaScriptの実行エンジンを提供しています。
※実行エンジンとはJavaScriptのソースコードを実行する環境です。
 Node.jsはGoogle Chromeが提供するV8エンジンを実装しています。

主にWebブラウザのクライアントサイド(閲覧者PC)で利用していたJavaScriptですが、Node.jsの実行エンジンをインストールすることでサーバサイドでもクライアントサイドでもRaspberryPiのようなIoT機器でもJavaScriptを実行できるようになります。

WebブラウザでJavaScriptを利用する場合はブラウザが用意している実行エンジンを利用します。

ブラウザ実行エンジン
Google ChromeV8
EdgeChakra
SafariNitro
FirefoxSpider Monkey

Node.jsの特徴

シングルスレッド:ノンブロッキング I/O

Node.jsは「シングルスレッド:ノンブロッキング I/O」で処理します。そのためサーバへの負荷が少なく、同時に大量のアクセスを処理できます。

マルチスレッド:ブロッキング I/O

1人目のリクエスト処理中に次のリクエストが来ると新しいスレッドを作成して処理する。

リクエストからレスポンスまでスレッドを占有し同期させて処理する。

シングルスレッド:ノンブロッキング I/O

1人目のリクエスト処理中に次のリクエストが来ても同じスレッドを利用して処理する。

ファイル取得などのように別場所で作業が発生している場合は、空いたスレッドを利用して次の人のリクエストを処理してしまう。

リクエストの途中に次のリクエストが割り込むことがあるのでリクエストとレスポンスは非同期に処理される。