Node.jsによる実践的なプロジェクト集。Node.jsは、もはや単なるサーバー構築用のツールではなく、複雑でスケーラブルなアプリケーションを支える中核技術へと進化しました。本書は、その進化を踏まえ、実務で求められる「エンジニアの総合力」を養うことを目的とした実践ガイドです。リアルタイム通知や音楽配信といった現代的なユースケースを題材に開発を進めながら、コーディングだけでなく、アーキテクチャの選定や設計上の判断といった思考プロセスを深く学びます。断片的な知識にとどまらず、体系的な学習を通じて、初心者を脱し、現場で信頼されるエンジニアへとステップアップしたい読者にお勧めです。
Node.jsプロジェクト
―実践的なWebアプリケーションとバックエンドAPIの構築
Jonathan Wexler 著、沖田 祐樹 監訳、大野 ケンタロウ 訳
- TOPICS
- Programming , Web , JavaScript
- 発行年月日
- 2026年07月03日
- PRINT LENGTH
- 464
- ISBN
- 978-4-8144-0167-3
- 原書
- Node.js Projects
- FORMAT
関連ファイル
目次
監訳者まえがき
まえがき
1章 Nodeの紹介とセットアップ
1.1 VS Codeのインストール
1.1.1 Macでのインストール
1.1.2 Windowsでのインストール
1.1.3 Linuxでのインストール
1.2 Nodeについて理解する
1.3 Nodeが際立っている理由
1.4 内部では何が行われているのか?
1.5 Nodeのインストール
1.5.1 Macでのインストール
1.5.2 Windowsでのインストール
1.5.3 Linuxでのインストール
1.6 Node開発者になるには
1.7 技術の習得
1.8 本書でのFastifyの利用
1.9 まとめ
2章 実用的なアプリケーション
2.1 読者への課題
2.2 計画を立てる
2.3 プログラミングを始める
2.4 ユーザー入力をCSVに変換する
2.5 外部パッケージを利用する
2.6 まとめ
3章 Node Webサーバーの作成
3.1 読者への課題
3.2 計画を立てる
3.3 アプリケーションのスケルトンを作成する
3.3.1 Fastifyを利用する
3.3.2 ルートとデータを追加する
3.4 UIを作成する
3.5 UIを改善する
3.6 まとめ
4章 安全なローカルパスワードマネージャーの作成
4.1 読者への課題
4.2 計画を立てる
4.3 ローカルのコマンドラインマネージャーを作成する
4.4 MongoDBを使ってパスワードを保存する
4.5 まとめ
5章 コンテンツアグリゲーター
5.1 読者への課題
5.2 計画を立てる
5.3 フィードの読み取りと解析
5.4 アグリゲーターを作成する
5.5 アグリゲーターにカスタム項目を追加する
5.6 まとめ
6章 図書館API
6.1 読者への課題
6.2 計画を立てる
6.3 APIのレイアウトからプログラミングを始める
6.4 アプリケーションにルートとアクションを追加する
6.5 データベースをアプリケーションに接続する
6.6 まとめ
7章 自然言語処理によるセンチメント分析
7.1 読者への課題
7.2 計画を立てる
7.3 文字列処理パッケージを使ってプログラミングを始める
7.4 センチメントを分析する
7.5 データベースの接続とデータの視覚化
7.6 まとめ
8章 マーケティングメーラー
8.1 読者への課題
8.2 計画を立てる
8.3 プログラミングを始める
8.4 メーラーサービスのフレームワークを追加する
8.5 データベースに接続する
8.6 メールエンゲージメントのためのマーケティングピクセルを実装する
8.7 タスクスケジューラーを統合する
8.8 まとめ
9章 Webスクレイパー
9.1 読者への課題
9.2 計画を立てる
9.3 プログラミングを始める
9.4 ヘッドレスブラウザーでWebページをスクレイピングする
9.5 まとめ
10章 アプリケーション認証
10.1 読者への課題
10.2 計画を立てる
10.3 プログラミングを始める
10.4 ログインフォームを作成する
10.5 ユーザーアカウントの保存と保護
10.6 JWTを用いたAPI認証
10.7 まとめ
11章 コーヒー注文マネージャー
11.1 読者への課題
11.2 計画を立てる
11.3 プログラミングを始める
11.4 Redisサーバーを追加する
11.5 堅牢なメッセージングシステムを統合する
11.6 まとめ
12章 音楽レーベルのブロックチェーンマーケット
12.1 読者への課題
12.2 計画を立てる
12.3 プログラミングを始める
12.4 ブロックチェーンのコーディング
12.5 実世界での実行
12.6 まとめ
13章 Gemini APIを利用したAI学習アシスタントの作成
13.1 読者への課題
13.2 計画を立てる
13.3 プログラミングを始める
13.4 学習支援のためにAIアシスタントをカスタマイズする
13.5 Fastifyサーバーをセットアップする
13.6 データベースとユーザー認証のセットアップ
13.7 まとめ
付録A Nodeチートシートとプロジェクトの初期化
A.1 Nodeプロジェクトの初期化(npmを使用)
A.2 推奨されるディレクトリ構造
A.3 package.jsonとスクリプトを理解する
A.4 Nodeの最新の構文パターン
A.5 Nodeエンジニアの成長分野
A.6 まとめ
付録B 開発ツールのセットアップ
B.1 コマンドラインからGitを使用する
B.2 おすすめのVS Code拡張機能
B.3 Postmanを使ってAPIをテストする
B.4 nodemonを使ってファイル変更を監視する
B.5 まとめ
付録C Nodeプロジェクトでデータベースを扱う
C.1 データベースが重要な理由
C.2 核となる概念:スキーマ、テーブル、コレクション、ドキュメント
C.3 MongoDB:柔軟なスキーマのためのNoSQL
C.3.1 インストール
C.3.2 MongoDBをローカルで起動する
C.3.3 Mongooseを使って接続する
C.4 PostgreSQL:SQLのパワーと構造
C.4.1 インストール
C.4.2 Sequelizeを使って接続する
C.5 SQLite:軽量で組み込み型
C.5.1 インストール
C.5.2 Sequelizeを使って接続する
C.6 ローカルデータベースとクラウドホスト型データベースの比較
C.6.1 クラウドサービス
C.7 Nodeアプリケーション用のデータベースの比較
C.8 永続化レイヤーを選択する
C.9 Redis:メモリ内での高速なキャッシュとキュー
C.9.1 インストール
C.9.2 Nodeから接続する
C.9.3 Redisをキューとして使用する
C.10 RabbitMQ:Nodeアプリケーションのためのキューベースのメッセージング
C.10.1 インストール
C.10.2 Nodeから接続する
C.11 次のステップ
C.12 まとめ
付録D サンプルコードの使い方とプロジェクトのコンテナー化
D.1 GitHubリポジトリにアクセスする
D.2 Dockerを使ってプロジェクトを実行する
D.2.1 ディレクトリ構造と配置場所
D.2.2 一連のDockerコマンドの実行手順
D.3 Nodeプロジェクトをコンテナー化するメリット
D.4 次のステップ
D.5 まとめ
付録E 開発者アカウントとAPI認証情報のセットアップ
E.1 APIキーの取り扱い
E.2 GitHub
E.3 MongoDB Atlas
E.4 OpenAI API
E.5 Google Gemini API
E.6 まとめ
付録F AIコーディングエージェントはどのように動くのか
F.1 イントロダクション
F.2 コーディングエージェントを支えるハーネス
F.2.1 エージェントループ
F.2.2 ハーネスの役割
F.2.3 ハーネスは最適化対象である
F.3 プロンプトキャッシング
F.3.1 プリフィルとデコード
F.3.2 KVキャッシュ
F.3.3 プロンプトキャッシングを生かすプロンプト設計
F.4 コンテキストエンジニアリング
F.4.1 サブエージェント
F.4.2 どの層で実行するか
F.4.3 コンテキスト圧縮
F.5 評価基盤・トレース・可観測性
F.5.1 例:MLflowによるLLMの可観測性
F.5.2 継続運用におけるコンテキスト更新
F.6 セキュリティモデルと委譲境界
F.6.1 サンドボックスと承認ポリシー
F.7 ケーススタディ:Stripeミニオンに見るコーディングエージェントの実装原則
F.8 まとめ
F.9 参考文献
索引
コラム目次
Nodeの発展的な概念
Fastifyの内部では
1章の練習問題
package.jsonとは何か?
promisifyを使って同期関数をラップする
2章の練習問題
Webサーバーの開発について
イベントループのブロッキング
3章の練習問題
4章の練習問題
Fetch APIについて
5章の練習問題
HTTPメソッド
アプリケーションを作成するための追加のステップ
RESTfulなルーティング
SQLiteとPostgreSQLの比較
6章の練習問題
NLP分析のための入力テキストのクリーニング
7章の練習問題
Googleでメーラーをセットアップする
8章の練習問題
HTMLについての簡単な説明
Puppeteerを使って作業する
9章の練習問題
Handlebarsを使ってテンプレートを作成する
パスワードをハッシュ化する
セッション入門
10章の練習問題
JavaScriptにおけるキュー
Redisについて
なぜRabbitMQなのか?
11章の練習問題
ブロックチェーンの概要
ブロックをマイニングする
12章の練習問題
大規模言語モデルとAI API
プロンプトエンジニアリング:効果的なAI指示を作成する
なぜSQLite3を使うのか?
13章の練習問題
Yarnとnpmの比較
macOS用のHomebrewについて
レート制限とクォータ
リポジトリのセキュリティ対策