実践Node.js入門ー基礎・開発・運用
書籍情報
発売日 : 2023/01/26
著者/編集 : 伊藤康太
出版社 : 技術評論社
発行形態 : 単行本
ページ数 : 384p
書籍説明
内容紹介
Node.jsの入門書です。Node.jsは今やWebアプリケーション開発には欠かせない存在です。
本書には、Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。
基礎知識、環境構築、重要文法、非同期、CLIツール開発、Expressを用いたサーバーサイドの開発やフロントエンド(React)との連携などNode.jsの全体像が学べます。
現場で活躍する第一人者が、Node.jsのアプリケーション開発の指針やノウハウを教えます。
本書には、Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。
基礎知識、環境構築、重要文法、非同期、CLIツール開発、Expressを用いたサーバーサイドの開発やフロントエンド(React)との連携などNode.jsの全体像が学べます。
現場で活躍する第一人者が、Node.jsのアプリケーション開発の指針やノウハウを教えます。
目次
1 はじめてのNode.js
1.1 Node.jsの言語としての特徴
1.2 フロントエンド/バックエンドの両方に必要となったNode.js
Column TypeScript
Column Node.jsとブラウザで動作するJavaScriptの違い
2 JavaScript/Node.jsの文法
2.1 開発環境の導入
Column Node.jsの導入方法
2.2 JavaScript基礎
Column ObjectとJSON
2.3 JavaScriptと継承
Column classとどう向き合うべきか
2.4 JavaScriptとthis
2.5 ES2015以降の重要文法
Column Strictモード
3 Node.jsとモジュール
3.1 CommonJS modules
Column requireと分割代入
3.2 ECMAScript modules
3.3 モジュールの使い分け
3.4 標準モジュール(Core API)
Column モジュール内の特殊な変数
3.5 npmと外部モジュールの読み込み
Column yarnやpnpmとNode.js
4 Node.jsにおける非同期処理(フロー制御)
4.1 同期処理と非同期処理
4.2 Callback
4.3 Promise
4.4 async/await
Column Promiseと並行実行
4.5 ストリーム処理
4.6 AsyncIterator
4.7 エラーハンドリングのまとめ
4.8 Top-Level Await
Column Node.jsとio.js
Column async.jsを利用したフロー制御
5 CLIツールの開発
5.1 Node.jsの開発フロー
5.2 引数の処理
5.3 ライブラリ導入とCLIへの落とし込み
Column process.cwd()
Column shebang
5.4 Node.jsのLint
5.5 Node.jsのテスト
6 ExpressによるREST APIサーバー/Webサーバー
6.1 Expressの基礎と導入
6.2 Expressの必須機能
6.3 包括的エラーハンドリング
6.4 データベース連携
Column EventEmitter内のエラーハンドリング
6.5 ビューテンプレート
6.6 静的ファイル配信
Column script async/defer
6.7 ルーティングとファイル分割の考え方
6.8 ファイル分割の実践
6.9 ハンドラーのテスト
6.10 AsyncIteratorのテスト
6.11 失敗時のテスト
6.12 ハンドラー単位の分割とテストしやすさ
6.13 Node.jsアプリケーションのデプロイ
6.14 Node.jsとDocker
6.15 Clusterによるパフォーマンス向上
Column Node.jsとデータベース
7 フロントエンド/バックエンドの開発
7.1 フロントエンドとバックエンドをまとめて開発する
7.2 モノレポ(Monorepo)
7.3 アプリケーションの構成
7.4 フロントエンド開発の考え方
7.5 Reactの基本機能
7.6 ブラウザイベントの処理
Column Reactにおけるイベントとハンドラーの紐づけ
7.7 コンポーネントの分割
Column コンポーネントとフレームワーク
7.8 API から取得した値を表示する
Column ホットリロード
Column XMLHttpRequestからfetchへ
Column ProxyサーバーでAPIを集約する
7.9 APIをコールして値を更新する
7.10 Client Side Routing(クライアントサイドのルーティング)
7.11 フロントエンドアプリケーションのデプロイ
Column nginxでProxyサーバーを建てる場合
Column ReactのSSR
Column Next.js
7.12 フロントエンドのテスト
Column テストとmock
Column E2Eテスト
Column フレームワークの利用
Column Access-Control-Allow-Originヘッダーを付与する(CORS)
Column Node.js とモジュールの選び方
Column フロントエンドとバックエンドのJavaScriptの違い
Column ブラウザー操作自動化―Puppeteer
8 アプリケーションの運用と改善
8.1 パッケージのバージョンアップ
8.2 モノレポで共通のライブラリを管理する
8.3 アプリケーションの実運用における注意点
8.4 パフォーマンス計測とチューニング
Column SIGUSR2を使う理由
1.1 Node.jsの言語としての特徴
1.2 フロントエンド/バックエンドの両方に必要となったNode.js
Column TypeScript
Column Node.jsとブラウザで動作するJavaScriptの違い
2 JavaScript/Node.jsの文法
2.1 開発環境の導入
Column Node.jsの導入方法
2.2 JavaScript基礎
Column ObjectとJSON
2.3 JavaScriptと継承
Column classとどう向き合うべきか
2.4 JavaScriptとthis
2.5 ES2015以降の重要文法
Column Strictモード
3 Node.jsとモジュール
3.1 CommonJS modules
Column requireと分割代入
3.2 ECMAScript modules
3.3 モジュールの使い分け
3.4 標準モジュール(Core API)
Column モジュール内の特殊な変数
3.5 npmと外部モジュールの読み込み
Column yarnやpnpmとNode.js
4 Node.jsにおける非同期処理(フロー制御)
4.1 同期処理と非同期処理
4.2 Callback
4.3 Promise
4.4 async/await
Column Promiseと並行実行
4.5 ストリーム処理
4.6 AsyncIterator
4.7 エラーハンドリングのまとめ
4.8 Top-Level Await
Column Node.jsとio.js
Column async.jsを利用したフロー制御
5 CLIツールの開発
5.1 Node.jsの開発フロー
5.2 引数の処理
5.3 ライブラリ導入とCLIへの落とし込み
Column process.cwd()
Column shebang
5.4 Node.jsのLint
5.5 Node.jsのテスト
6 ExpressによるREST APIサーバー/Webサーバー
6.1 Expressの基礎と導入
6.2 Expressの必須機能
6.3 包括的エラーハンドリング
6.4 データベース連携
Column EventEmitter内のエラーハンドリング
6.5 ビューテンプレート
6.6 静的ファイル配信
Column script async/defer
6.7 ルーティングとファイル分割の考え方
6.8 ファイル分割の実践
6.9 ハンドラーのテスト
6.10 AsyncIteratorのテスト
6.11 失敗時のテスト
6.12 ハンドラー単位の分割とテストしやすさ
6.13 Node.jsアプリケーションのデプロイ
6.14 Node.jsとDocker
6.15 Clusterによるパフォーマンス向上
Column Node.jsとデータベース
7 フロントエンド/バックエンドの開発
7.1 フロントエンドとバックエンドをまとめて開発する
7.2 モノレポ(Monorepo)
7.3 アプリケーションの構成
7.4 フロントエンド開発の考え方
7.5 Reactの基本機能
7.6 ブラウザイベントの処理
Column Reactにおけるイベントとハンドラーの紐づけ
7.7 コンポーネントの分割
Column コンポーネントとフレームワーク
7.8 API から取得した値を表示する
Column ホットリロード
Column XMLHttpRequestからfetchへ
Column ProxyサーバーでAPIを集約する
7.9 APIをコールして値を更新する
7.10 Client Side Routing(クライアントサイドのルーティング)
7.11 フロントエンドアプリケーションのデプロイ
Column nginxでProxyサーバーを建てる場合
Column ReactのSSR
Column Next.js
7.12 フロントエンドのテスト
Column テストとmock
Column E2Eテスト
Column フレームワークの利用
Column Access-Control-Allow-Originヘッダーを付与する(CORS)
Column Node.js とモジュールの選び方
Column フロントエンドとバックエンドのJavaScriptの違い
Column ブラウザー操作自動化―Puppeteer
8 アプリケーションの運用と改善
8.1 パッケージのバージョンアップ
8.2 モノレポで共通のライブラリを管理する
8.3 アプリケーションの実運用における注意点
8.4 パフォーマンス計測とチューニング
Column SIGUSR2を使う理由
著者情報
伊藤康太
伊藤康太(いとうこうた)
2013年にヤフー株式会社に入社。情報システム部門やプラットフォーム部門にて企画・開発・運用に従事。
またヤフーにおけるスペシャリスト認定制度である黒帯(Webフロントエンド)を拝命し、社内横断の組織にて技術や開発のサポート、OSSへのフィードバックなどに携わる。
2022年よりRPGテック合同会社に参画し、スタートアップ・新規事業の開発やアドバイザー業務などを手掛ける。
著書に『動かして学ぶ!Slackアプリ開発入門(共著、翔泳社)』、その他ウェブメディアや雑誌への寄稿も行う。
伊藤 康太