ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
1. Node.js のインストール
nvm を使う方法 (Linux / macOS 推奨)
# nvm をインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
# シェル再起動 or
source ~/.bashrc
# 最新 LTS をインストール
nvm install --lts
nvm use --lts
nvm alias default lts/*
# 確認
node -v # v22.x.x
npm -v # 10.x.x
Windows (nvm-windows / winget)
# winget で公式版
winget install OpenJS.NodeJS.LTS
# または nvm-windows
# https://github.com/coreybutler/nvm-windows/releases
nvm install lts
nvm use lts
# 確認
node -v
npm -v
macOS (Homebrew)
brew install node
# または特定バージョン
brew install node@22
brew link node@22
# Volta (バージョン自動切替に便利)
curl https://get.volta.sh | bash
volta install node@lts
2. 初めての Hello World
// hello.js
console.log('Hello, Node.js!');
console.log('Node version:', process.version);
console.log('Platform:', process.platform);
実行:
node hello.js
# Hello, Node.js!
# Node version: v22.0.0
# Platform: linux
3. REPL (対話シェル)
# 対話モードに入る
node
> 1 + 1
2
> const x = [1, 2, 3]
> x.map(n => n * 2)
[ 2, 4, 6 ]
> .exit
4. 最小 HTTP サーバ (素の Node)
// server.js
import http from 'node:http';
const server = http.createServer((req, res) => {
console.log(`${req.method} ${req.url}`);
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('Hello from Node!\n');
});
const PORT = 3000;
server.listen(PORT, () => {
console.log(`Listening on http://localhost:${PORT}`);
});
実行 → ブラウザで http://localhost:3000
node server.js
# 別ターミナルから
curl http://localhost:3000
# Hello from Node!
5. npm init + Express で API サーバ
プロジェクト初期化
mkdir my-api && cd my-api
npm init -y # package.json 生成 (-y で全デフォルト)
npm install express # Express 追加
npm install -D nodemon # ファイル変更で自動再起動
package.json の例
{
"name": "my-api",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "node --test"
},
"dependencies": {
"express": "^4.19.0"
},
"devDependencies": {
"nodemon": "^3.1.0"
}
}
index.js
import express from 'express';
const app = express();
app.use(express.json());
// 一覧
let todos = [{ id: 1, text: 'Learn Node' }];
app.get('/todos', (req, res) => {
res.json(todos);
});
// 作成
app.post('/todos', (req, res) => {
const todo = { id: Date.now(), text: req.body.text };
todos.push(todo);
res.status(201).json(todo);
});
// 削除
app.delete('/todos/:id', (req, res) => {
todos = todos.filter(t => t.id !== Number(req.params.id));
res.status(204).end();
});
app.listen(3000, () => console.log('API on :3000'));
起動
npm run dev # nodemon で自動再起動
# 別ターミナルで動作確認
curl http://localhost:3000/todos
curl -X POST http://localhost:3000/todos \
-H "Content-Type: application/json" \
-d '{"text":"Buy milk"}'
6. package.json scripts の標準コマンド
| コマンド | 慣習的な用途 |
|---|---|
npm start | 本番モードで起動 (node index.js) |
npm run dev | 開発モード (nodemon / tsx watch) |
npm run build | 本番ビルド (tsc / vite build) |
npm test | テスト実行 (node --test / jest / vitest) |
npm run lint | ESLint 実行 |
npm run format | Prettier 実行 |
7. .gitignore 必須項目
# 依存
node_modules/
# 環境変数 (絶対コミット禁止)
.env
.env.local
.env.production
# ビルド成果物
dist/
build/
.next/
.nuxt/
.svelte-kit/
# ログ
*.log
npm-debug.log*
yarn-debug.log*
pnpm-debug.log*
# エディタ
.vscode/
.idea/
.DS_Store
node_modules は git にコミットしないのが鉄則。サイズが大きく、package.json + npm install で復元できるためです。
8. TypeScript で始めたい場合
npm install -D typescript tsx @types/node @types/express
npx tsc --init
# 開発実行
npx tsx watch src/index.ts
# ビルド → 本番起動
npx tsc
node dist/index.js
よくある詰まりポイント
| 症状 | 原因 | 対処 |
|---|---|---|
command not found: node | PATH に通っていない | nvm 設定 / インストーラ再実行 |
EADDRINUSE | ポート 3000 使用中 | 別ポート / プロセス kill |
SyntaxError: Cannot use import statement outside a module | package.json に "type": "module" 無 | 追加 or 拡張子 .mjs |
Error: Cannot find module 'express' | npm install 忘れ | npm install |
npm WARN deprecated 多発 | 古い依存 | npm audit fix / npm update |
FAQ
Q: nvm と Volta どちらが良い?
A: シンプルなら nvm。プロジェクトごとに自動切替したいなら Volta (package.json にバージョンを記録)。
Q: yarn / pnpm に切り替えるべき?
A: 速度・ディスク節約なら pnpm が現状最強。npm 標準で困らなければそのままで OK。
Q: index.js / server.js / app.js どれを起点にすべき?
A: 慣習はあるが厳密ルールはなし。package.json の main または scripts.start を見れば分かるので統一しましょう。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 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
コメントを削除してもよろしいでしょうか?