ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Node.js とは
Node.js は、Google 製の V8 JavaScript エンジンを OS 上で直接動かすためのランタイム環境です。2009 年に Ryan Dahl が公開し、それまでブラウザでしか動かなかった JavaScript をサーバサイドで動かす道を開きました。
非同期 I/O ライブラリ libuv を組み合わせたシングルスレッド + イベントループで、少数のスレッドで何万もの同時接続を捌けるのが強みです。
アーキテクチャ
+---------------------------------------+
| JavaScript アプリケーションコード |
+---------------------------------------+
| Node.js Standard Library (fs/http/…) |
+---------------------------------------+
| Node Bindings (C++) |
+---------------------+-----------------+
| V8 エンジン | libuv |
| (JIT / GC) | (Event Loop) |
| | (Thread Pool) |
+---------------------+-----------------+
| OS Kernel |
+---------------------------------------+
イベントループ
Node.js のイベントループは 6 フェーズで構成されます:
| フェーズ | 処理対象 |
|---|---|
| 1. Timers | setTimeout / setInterval のコールバック |
| 2. Pending callbacks | I/O の延期コールバック (TCP エラー等) |
| 3. Idle, prepare | 内部処理 |
| 4. Poll | 新しい I/O イベントを取得 / コールバック実行 |
| 5. Check | setImmediate のコールバック |
| 6. Close callbacks | socket.on("close", …) など |
各フェーズ間で process.nextTick と Promise (microtask) が優先実行されます。
最小 HTTP サーバ
// server.mjs (ESM)
import http from 'node:http';
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Hello, Node.js' }));
});
server.listen(3000, () => {
console.log('Listening on http://localhost:3000');
});
// 実行
// node server.mjs
npm エコシステム
Node.js とセットで配布される npm (Node Package Manager) は、世界最大のパッケージレジストリです。
# パッケージ初期化
npm init -y
# 依存追加
npm install express # 本番依存
npm install -D typescript @types/node # 開発専用
# スクリプト実行 (package.json の "scripts")
npm run dev
npm run build
npm test
# 監査
npm audit
npm audit fix
# パッケージ更新
npm outdated
npm update
# グローバルインストール
npm install -g pm2
主要フレームワーク
| フレームワーク | 特徴 | 用途 |
|---|---|---|
| Express | 2010 -。事実上の標準。ミニマル / ミドルウェア型 | REST API 全般 |
| Fastify | Express より 2-3 倍速い。スキーマバリデーション内蔵 | 高負荷 API |
| NestJS | Angular 風 DI / デコレータ / モジュール | エンタープライズ |
| Koa | Express 作者の後継。async/await ベース | モダンな API |
| Hono | エッジ / Cloudflare Workers 対応の超軽量 | エッジ API |
| tRPC | 型安全な RPC。React と相性◎ | フロント+バックの型共有 |
Express の例
import express from 'express';
const app = express();
app.use(express.json());
app.get('/users/:id', async (req, res) => {
const user = await db.user.findById(req.params.id);
res.json(user);
});
app.post('/users', async (req, res) => {
const created = await db.user.create(req.body);
res.status(201).json(created);
});
app.listen(3000);
NestJS の例
@Controller('users')
export class UsersController {
constructor(private readonly users: UsersService) {}
@Get(':id')
findOne(@Param('id') id: string) {
return this.users.findOne(id);
}
@Post()
create(@Body() dto: CreateUserDto) {
return this.users.create(dto);
}
}
用途別の Node.js 使い所
- API サーバ: REST / GraphQL / gRPC のサーバ実装
- BFF (Backends for Frontends): フロント特化の中間サーバ
- SSR: Next.js / Nuxt / Remix のサーバ部
- ビルドツール: Webpack / Vite / esbuild / Rollup の実行基盤
- CLI ツール: ESLint / Prettier / npm-scripts
- WebSocket / リアルタイム: Socket.IO / ws ライブラリ
- バッチ / 定期処理: cron-like なスケジューラ
- Discord/Slack bot: 公式 SDK が Node 対応
TypeScript との組み合わせ
# TypeScript + tsx (高速実行)
npm install -D typescript tsx @types/node
npx tsc --init
# 開発時実行
npx tsx watch src/server.ts
# 本番ビルド
npx tsc
# Node 22+ なら .ts を直接 (実験的)
node --experimental-strip-types src/server.ts
Deno / Bun との比較
| 項目 | Node.js | Deno | Bun |
|---|---|---|---|
| エンジン | V8 | V8 | JavaScriptCore |
| 初版 | 2009 | 2020 | 2022 |
| TS 対応 | 要トランスパイル (v22 で実験) | ネイティブ | ネイティブ |
| セキュリティ | 制限なし | デフォルト拒否 / 明示許可 | 制限なし |
| npm 互換 | ○ | ○ (v1.25+) | ○ |
| パッケージ管理 | npm/yarn/pnpm | URL import / npm | bun install |
| 速度 (起動) | 普通 | 普通 | ★★ 最速 |
| エコシステム | ★★★ 最大 | ★ | ★ |
バージョン管理 (nvm / Volta)
# nvm (Linux/macOS)
nvm install 22
nvm use 22
nvm alias default 22
# Windows は nvm-windows
nvm install 22.0.0
nvm use 22.0.0
# Volta (推奨。プロジェクト単位でピン留め)
curl https://get.volta.sh | bash
volta install node@22
volta pin node@22.0.0 # package.json に記録
# fnm (Rust 製 / 軽量)
fnm install 22
fnm use 22
FAQ
Q: Node はシングルスレッドというが CPU が複数あれば?
A: cluster モジュールや worker_threads、PM2 / Node Cluster で複数プロセス / 複数スレッド化できます。
Q: LTS と Current の違いは?
A: 偶数番号は LTS (Long Term Support, 30 ヶ月サポート)。奇数番号は短命 (Current 6 ヶ月)。本番は LTS のみ使用。
Q: Express で十分か NestJS が必要か?
A: ルーティング数百以下・小規模 → Express で十分。チーム開発・モジュール構造重視・テスト容易性 → NestJS。
📸 参考画像
※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?