りゅうじの学習blog

学習したことをアウトプットしていきます。

2022年3月23日Node.jsの概要

Node.jsとは

スケーラブルなネットアプリケーションを構築するために設計された非同期型のイベント駆動のJavaScript環境です。

または

JavaScriptで書かれたプログラムを実行するためのランタイムとも表現できます。

ランタイムとは

実行に必要なプログラム群です。

スケーラブル(scalable)とは、拡張性がある、増加または減少しうる、という意味。 例えばインターネットでは、多数のファイル、多数のユーザ、多種多様なアプリケーションに対応できる技術的な柔軟性を指す。

実行エンジン V8

node.jsの実行エンジンです。

JavaScriptエンジンの役割は、JavaScirptを解釈して実行することです。 任意のJavaScript を実行する役割です。

ChromeJavaScriptエンジンがV8です。

シングルスレッドとは

node.jsはシングルスレッドです。

前の処理が終えていないと次の処理が始まりません。

ブロッキングI/OとノンブロッキングI/O

時間のかかる処理にファイルI/Oがあります。

I/Oとは

入力と出力を一緒くたに表現です。入出力です。IはInput, OはOutputです。

つまりファイルI/Oとは

ファイルに対してデータ書き込む処理やファイルの中にあるデータを読み込む処理の事です。

ファイルI/Oの種類

  • ブロッキングI/Oは同期処理と同様に今の処理が終えるまで次の処理にいきません。
  • ノンブロッキングI/Oは非同期処理と同様に時間のかかる処理の間に次の処理を実行していきます。

※Node.jsはシングルスレッドでノンブロッキングI/Oでリソースの効率利用ができます。

Node.js + Express

webアプリケーションを実装する際にこの二つを用います。

ちなみにデスクトップアプリケーションにはNode.js + Electronを用います。

webアプリケーションの利用例

デスクトップアプリケーションの利用例

参考

Udemy Node.js入門