ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
はじめに
Node.js は JavaScript でサーバサイド処理を書ける実行環境です。標準モジュールの http だけで、ブラウザからアクセスできる最小限の Web サーバが組めるため、入門にぴったりの題材です。
事前準備
- Node.js(推奨は LTS バージョン)をインストール
- 動作確認: ターミナルで
node -v - 適当な作業フォルダを作って移動
# Node.js のバージョン確認
node -v
# v20.10.0 などが表示されればOK
# 作業フォルダ作成
mkdir my-server
cd my-server
最小サーバー(http モジュール)
作業フォルダ内に server.js を作成し、以下を貼り付けます。
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.write('Node.js Server Start!');
res.end();
});
server.listen(8000, () => {
console.log('サーバー起動中... http://localhost:8000/');
});
起動
node server.js
# サーバー起動中... http://localhost:8000/
ブラウザで http://localhost:8000/ にアクセスすると Node.js Server Start! と表示されます。停止は Ctrl + C。
HTML を返す
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.end(`
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>My Server</title></head>
<body>
<h1>こんにちは、Node.js</h1>
<p>現在時刻: ${new Date().toLocaleString('ja-JP')}</p>
</body>
</html>
`);
});
server.listen(8000);
JSON API を返す
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8' });
res.end(JSON.stringify({
message: 'Hello',
time: new Date().toISOString()
}));
});
server.listen(8000);
URL でルーティング
const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
const path = url.parse(req.url).pathname;
if (path === '/') {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('トップページ');
} else if (path === '/about') {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('Aboutページ');
} else {
res.writeHead(404, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('404 Not Found');
}
});
server.listen(8000);
Express を使うと簡単
本格的にルーティングやミドルウェアを使うなら Express が定番です。
# npm 初期化
npm init -y
# Express インストール
npm install express// app.js
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('トップページ');
});
app.get('/about', (req, res) => {
res.send('Aboutページ');
});
app.get('/api/users/:id', (req, res) => {
res.json({ id: req.params.id, name: 'Taro' });
});
app.listen(8000, () => {
console.log('Express server started: http://localhost:8000/');
});node app.js
nodemon — 自動再起動
ファイル保存時にサーバを自動再起動してくれる開発ツール。手動で node server.js を打ち直す必要がなくなります。
# グローバルインストール
npm install -g nodemon
# 起動(node の代わりに nodemon)
nodemon server.js
ポート番号の選び方
| 範囲 | 用途 |
|---|---|
| 0-1023 | well-known ports(管理者権限必要、80 / 443 等) |
| 1024-49151 | registered ports(一般用、開発に使いやすい) |
| 49152-65535 | dynamic / private ports(OS が動的に割当) |
開発では 3000 / 4000 / 5000 / 8000 / 8080 がよく使われます。本番で 80 / 443 を使うときはリバースプロキシ(nginx 等)の後ろに置くのが一般的です。
環境変数でポート切替
const PORT = process.env.PORT || 8000;
server.listen(PORT, () => {
console.log(`http://localhost:${PORT}/`);
});# Linux / macOS
PORT=4000 node server.js
# Windows (PowerShell)
$env:PORT = 4000; node server.js
よくあるトラブル
| 症状 | 原因 / 対処 |
|---|---|
| EADDRINUSE | ポートが他のプロセスで使用中。別ポートに変えるか、占有プロセスを終了 |
| EACCES | 1024 未満のポートに非 root で listen している。1024 以上に変更 |
| 文字化け | Content-Type に charset=utf-8 を付ける |
| Cannot find module 'express' | npm install express を実行 |
| 外部からつながらない | OS / クラウドのファイアウォール、0.0.0.0 へバインドの確認 |
外部公開する際のポイント
- 本番では Node を直接公開しない — nginx 等のリバースプロキシ越しが定番
- HTTPS は Let's Encrypt + リバースプロキシで終端
- プロセス管理には PM2、systemd、Docker 等
- 環境変数で秘匿情報を管理(dotenv が便利)
FAQ
Q: 何度実行しても同じ画面しか出ない
A: ブラウザのキャッシュです。Ctrl + F5 で強制リロードを試してください。
Q: ポートを変えるには?
A: server.listen(3000) のように数値を変えて再起動するか、上記の環境変数方式を使います。
Q: TypeScript で書きたい
A: ts-node や tsx を使うとビルドなしで実行できます。本格運用なら tsc で JS にコンパイル → node dist/server.js。
関連
- Node.js — サーバサイド JS ランタイム
- Express — 最も普及している Node 用 Web フレームワーク
- npm — Node のパッケージマネージャ
- nodemon — ファイル変更で自動再起動
- http モジュール — Node 標準の HTTP サーバ機能
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- インストール方法(Windows編)
- インストール方法(CentOS編)
- クイックスタート
- 簡単なサーバー構築と起動方法
- ExpressとEJSを使用した簡単なアプリの作成
人気ページ
- 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
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 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
- 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
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・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
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 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
コメントを削除してもよろしいでしょうか?