バックエンドの用語一覧へ
このページの目次
バックエンド中級図解あり

Node.jsとは?

読み方:node.js

最終更新:2026/08/18

3秒でわかる

JavaScriptブラウザの外で動かす実行環境。Web サーバやコマンドラインツールを、フロントと同じ言語のまま書けるようになります。

30秒図解

Node.jsはI/OをOSやlibuvへ委譲し、JavaScriptは別の処理を進め、完了callbackをqueueから実行する循環図
Node.jsはI/O待ちを外へ任せ、戻ったcallbackをJavaScriptで一つずつ実行する

もう少し詳しく

どういうものか

Node.js は、ブラウザに載っている JavaScript エンジン (V8) を取り出して、単体で動くようにした実行環境です。ブラウザには無いファイル操作やネットワークの待ち受けができるため、Web サーバ、ビルドツール、コマンドラインツールを JavaScript で書けます。特徴は、処理を待つ間に別の仕事を進めるイベントループの構造で、スレッドを増やさずに多数の接続をさばけます。

なぜ必要か

多くの Web アプリはフロントエンドが JavaScript です。サーバ側も同じ言語なら、定義や入力チェックのコードを両側で共有でき、担当を分けずに済みます。

もうひとつは待ち時間の扱いです。従来型のサーバは 1 接続に 1 スレッドを割り当てるため、DB の応答を待つ間もスレッドが占有されます。Node.js は待ちに入った時点で次の処理へ移り、結果が返ったところで続きを実行します。API の中継やチャットのように、計算は軽いが待ちが多い処理と相性が良い設計です。

具体例

import { createServer } from "node:http"; const server = createServer(async (req, res) => { const r = await fetch("https://api.example.com/items"); const data = await r.json(); res.writeHead(200, { "Content-Type": "application/json" }); res.end(JSON.stringify(data)); }); server.listen(3000);
node --version npm init -y npm install express node server.js

似た用語との違い

名前位置づけ
Node.jsJavaScript の実行環境
npm付属するパッケージ管理ツール
ExpressNode.js 上で動く Web フレームワーク
Deno、BunNode.js と同じ領域の別実装


Node.js 自体は言語ではありません。言語は JavaScript で、Node.js はそれを動かす側です。

つまずきやすいところ

モジュールの形式が 2 つあります。require で読み込む CommonJS と、import で読み込む ES Modules です。package.json の type を module にすると後者になり、混在させると読み込みでエラーになります。エラーメッセージに ERR_REQUIRE_ESM が出たらこの問題です。

もうひとつは、重い計算を書くと全体が止まることです。イベントループは 1 本しか無いため、10 秒かかる同期処理を走らせている間、他のリクエストは 1 件も処理されません。画像変換のような重い処理は、worker_threads に逃がすか別のサービスに切り出します。

非同期の書き方の取り違えもよく起きます。await を付け忘れると、値ではなく Promise がそのまま渡り、undefined として扱われて原因が分かりにくくなります。

次に学ぶ

セッションとは?

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地Node.jsバックエンド

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

この用語を扱うコース

コース

Node.js入門

55レッスン
コース

モダンJavaScript:データ処理とコード設計

36レッスン
コース

Express道場 fleama開発室のIssue10件

10レッスン
Node.jsコースの全編を見る