Node.js(ノードジェイエス)とは、本来はGoogle Chromeなどの「Webブラウザの中」でしか動かなかったJavaScriptを、サーバー側(OS上)で動かせるようにした「JavaScript実行環境(ランタイム)」です。
Node.jsの登場により、開発者は「画面側(フロントエンド)」と「サーバー側(バックエンド)」の両方のシステムを、JavaScriptという1つの言語だけで開発できるようになり、Web開発の世界に革命をもたらしました。
ブラウザのJavaScriptとの違い
同じJavaScriptという言語を書いていても、それが「どこで(何の環境で)実行されるか」によって、操作できる対象や役割が全く異なります。
| 実行環境 | 主な役割 | 操作できるもの(得意なこと) |
|---|---|---|
| ブラウザ (従来のJS) |
ユーザーの画面上で動き、見た目や操作性を向上させる。 | ・画面の要素(HTML/CSSの書き換え) ・マウスやキーボードの入力検知 |
| Node.js (サーバー側) |
裏側のサーバー上で動き、データ処理や他システムとの連携を行う。 | ・データベースの操作(保存・読み出し) ・サーバー内のファイルの読み書き ・ネットワーク通信の制御 |
システム開発における重要キーワード
現代のWebアプリ開発や、バックエンド環境(Firebase Cloud Functionsなど)において、Node.jsに関連して必ず登場する用語です。
- npm (Node Package Manager):
世界中の開発者が作った便利なプログラムの部品(パッケージやライブラリ)を、自分のシステムに簡単にインストールして管理できる仕組みです。現代のシステム開発は、このnpmを使って優秀な部品をブロックのように組み合わせて、効率よく構築するのが当たり前になっています。 - ノンブロッキングI/O(非同期I/O):
Node.jsの最大の強みである通信の処理方式です。例えばデータベースから重いデータを引き出している最中でも、その完了を「立ち止まって待たずに」別のユーザーの処理をどんどん進めることができます。これにより、リアルタイムなチャットアプリや、同時アクセスが非常に多いシステムの処理を大の得意としています。 - SSR(サーバーサイドレンダリング):
本来はユーザーのブラウザ側でJavaScriptを実行して画面を作る処理(SPAなど)を、あらかじめNode.jsを搭載したサーバー側で済ませておき、ブラウザには「完成済みのHTML」を返す技術です。ページの最初の表示速度が劇的に向上し、検索エンジンにも正しく認識されるため、SEO対策として強力なメリットがあります。

コメント