Node.js とは、JavaScript をサーバーサイド(バックエンド)で使用するためのランタイム環境です。ブラウザだけで動いていた JavaScript をサーバーサイドでも活用できるようにする仕組みを提供します。

Node.js の主な特徴
- 非同期・イベント駆動型
- Node.js は非同期処理を得意とする設計になっています。これにより、リクエストを並列に処理する性能が高く、サーバーの応答性が向上します。
- V8 JavaScript エンジンを使用
- Google の Chrome ブラウザに搭載されている V8 エンジンを利用しているため、JavaScript の実行速度が非常に速いです。
- 単一スレッド
- Node.js は単一スレッドで動作しますが、内部で非同期 I/O 操作を行うことで効率よく複数のリクエストを処理します。
- NPM(Node Package Manager)
- Node.js のパッケージ管理システムで、数百万以上のパッケージ(モジュール)が利用可能です。これにより、アプリケーションの開発が迅速化します。
- クロスプラットフォーム
- Windows、macOS、Linux など、さまざまな環境で動作します。
Node.js の用途
Web サーバー
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, World!\n');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
リアルタイムアプリケーション
チャットアプリや WebSocket を利用したリアルタイム通信が必要なアプリに最適。
API サーバー
RESTful API や GraphQL API を作成する際に利用されます。
シングルページアプリケーション(SPA)との連携
React、Vue、Angular などのフロントエンドフレームワークと連携し、バックエンドとして利用。
スクリプト・自動化ツール
CLI ツールや自動化スクリプトを作成する際にも使用可能。
マイクロサービス
小規模で独立したサービスを構築するのに適しています。
Node.js を使うメリット
- JavaScript 統一
- フロントエンドとバックエンドの両方を JavaScript で統一できる。
- 高速
- 非同期処理と V8 エンジンにより、高速な処理が可能。
- 豊富なモジュール
- NPM の膨大なパッケージ群により、再利用可能なコードを簡単に利用可能。
- アクティブなコミュニティ
- オープンソースで開発されており、多くの開発者がサポートしています。
Node.js を選ぶべきケース
- リアルタイム機能が必要(例:チャットアプリ、ゲームサーバー)
- 軽量なバックエンドアプリケーションを作りたい
- JavaScript に慣れている
- フロントエンドとバックエンドを統一したい
注意点
- CPU 集中型タスクには不向き
単一スレッドモデルなので、計算が重い処理には適していません。 - コールバック地獄
非同期処理の設計によってコードが複雑になることがあるが、現在ではasync/await
の使用で解決可能。
Node.jsの使用方法
以下は基本的なセットアップからコードの実行方法、具体的な活用例までを段階的に説明します。
事前準備
nvmを使用する場合、必要に応じてnvmのバージョンを最新にしてから実行します。
例)v0.40.1 をインストールする
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
1. Node.js のインストール
公式サイト にアクセスします。https://nodejs.org/ja/download
LTS(Long Term Support)バージョンを選択してダウンロードします。
LTS は安定版で、一般的な使用に適しています。プルダウンでご自身の環境に合わせて変更してください。

インストール完了後、以下のコマンドでバージョンを確認します。
node -v
npm -v
node -v
: Node.js のバージョンを確認。
npm -v
: NPM(Node Package Manager)のバージョンを確認。
(外部サイト)Node.js公式サイト
2. 初めてのスクリプトを作成
任意のフォルダを作成して移動します。
mkdir my-node-app
cd my-node-app
新しいファイルを作成します(例: app.js
)。
touch app.js
ファイルにコードを記述します。例えば、Hello World スクリプト:
console.log("Hello, Node.js!");
実行します。
node app.js
結果として、Hello, Node.js!
がコンソールに表示されます。
3. HTTP サーバーの作成
Node.js の基本的な用途の一つが、HTTP サーバーの構築です。
app.js
に以下のコードを記述:
const http = require("http");
const server = http.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Hello, World!\n");
});
server.listen(3000, () => {
console.log("Server running at http://localhost:3000/");
});
実行します。
node app.js
ブラウザで http://localhost:3000/
にアクセスすると、Hello, World!
と表示されます。
4. NPM を使ったパッケージ管理
Node.js の強みの一つは、NPM(Node Package Manager) を使ったライブラリの管理です。
パッケージの初期化
プロジェクトディレクトリで以下を実行して package.json
を作成:
npm init -y
このコマンドで、デフォルト設定の package.json
が生成されます。
パッケージのインストール
例: 人気のウェブフレームワーク Express をインストール。
npm install express
5. Express を使った Web アプリケーションの作成
app.js
を以下の内容に変更します:
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello, Express!");
});
app.listen(3000, () => {
console.log("App listening at http://localhost:3000");
});
実行します。
node app.js
ブラウザで http://localhost:3000
にアクセスすると、Hello, Express!
と表示されます。
6. 非同期処理の基本
Node.js は非同期処理を得意としています。以下はファイルを読み込む例です。
fs
モジュールを使った非同期ファイル読み込み:
const fs = require("fs");
fs.readFile("example.txt", "utf8", (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
ファイル example.txt
を作成し、任意のテキストを記述。
touch example.txt
echo "This is Node.js!" > example.txt
実行すると、example.txt
の内容がコンソールに表示されます。
7. Node.js の活用例
- リアルタイムアプリケーション
WebSocket を使ってチャットアプリや通知システムを構築。 - REST API サーバー
Express を使って API を簡単に構築。 - タスク自動化
スクリプトを作成して定型業務を効率化。 - データ処理
大量のデータを扱うためのツール作成。
8. Node.js のデバッグ方法
Node.js にはデバッグツールが組み込まれています。
デバッグモードで実行:
node inspect app.js
Chrome DevTools を利用する:
node --inspect-brk app.js
ブラウザで chrome://inspect
にアクセスしてデバッグ。
コメント
コメント一覧 (2件)
[…] Ai0w.com Node.jsとは?インストール方法を解説 | Ai0w.com Node.js とは、JavaScript をサーバーサイド(バックエンド)で使用するためのランタイム環境です。ブラウザだけで動いていた JavaScri […]
[…] Ai0w.com Node.jsとは?インストール方法を解説 | Ai0w.com Node.js とは、JavaScript をサーバーサイド(バックエンド)で使用するためのランタイム環境です。ブラウザだけで動いていた JavaScri […]