実践Node.js入門
―基礎・開発・運用

[表紙]実践Node.js入門 ―基礎・開発・運用

紙版発売
電子版発売

A5判/384ページ

定価3,278円(本体2,980円+税10%)

ISBN 978-4-297-12956-9

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

Node.jsの入門書です。Node.jsは今やWebアプリケーション開発には欠かせない存在です。

本書には,Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。

基礎知識,環境構築,重要文法,非同期,CLIツール開発,Expressを用いたサーバーサイドの開発やフロントエンド(React)との連携などNode.jsの全体像が学べます。

現場で活躍する第一人者が,Node.jsのアプリケーション開発の指針やノウハウを教えます。

こんな方におすすめ

  • Node.jsを学びたいエンジニア
  • JavaScriptへの基本的な知識のあるエンジニア,サーバサイドもある程度しっかりやりたい人
  • 他言語でサーバサイド開発の経験があり,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を使う理由

著者プロフィール

伊藤康太(いとうこうた)

2013年にヤフー株式会社に入社。情報システム部門やプラットフォーム部門にて企画・開発・運用に従事。またヤフーにおけるスペシャリスト認定制度である黒帯(Webフロントエンド)を拝命し,社内横断の組織にて技術や開発のサポート,OSSへのフィードバックなどに携わる。

2022年よりRPGテック合同会社に参画し,スタートアップ・新規事業の開発やアドバイザー業務などを手掛ける。

著書に『動かして学ぶ!Slackアプリ開発入門(共著,翔泳社)』,その他ウェブメディアや雑誌への寄稿も行う。