本書は入門書の次に読むことを想定にした、中級者へのステップアップを目指すNode.js解説書です。主にNode.jsに対する技術的な内容を扱います。本書を読むことによって、Node.jsに対する理解を深めることができます。Node.jsの副読本として活用ください。
【目次】
第1章 Node.jsの全体像
第2章 npm(Node Package Manager)
第3章 サーバーとしてのNode.js
第4章 イベントループ
第5章 非同期プログラミング(コールバック)
第6章 コールバック地獄の解消
第7章 Stream
第8章 AltJSとTypeScriptを使った開発
第9章 コーディングガイドラインとESLint
第10章 Node.jsとセキュリティ
第11章 Node.jsのコアには、どのようなモジュールがあるのか
第12章 JavaScript & Node.js Tips集
付録A Node.jsの習得に役立つ情報を得るには
付録B ES2015(ES6)
付録C ES2016
付録D ES2017
付録E ES2018
付録F ES2019
付録G Node.js v13とv14について
目次プレビュー
- まえがき
- 第1章 Node.jsの全体像
- 第2章 npm(Node Package Manager)
-
1.1 サーバーサイドのJavaScript実行環境
-
1.2 V8 JavaScript Engine
-
1.3 Node.jsで使えるJavaScriptの文法
-
1.4 libuv
-
1.5 node-core(JavaScript API)
-
1.6 Node.jsのリリースサイクル
-
1.7 まとめ
-
2.1 package.json
-
2.2 package-lock.json
-
2.3 npmの設定
-
2.4 npx
-
2.5 npmパッケージの選定
-
2.6 Yarn
-
2.7 npmとyarnのどちらを使うのか
-
3.1 シングルプロセスとシングルスレッド
-
3.2 クラスタリング
-
3.3 プロセスマネージャー
-
3.4 まとめ
-
4.1 イベントキュー
-
4.2 イベントループ
-
4.3 ブラウザーとキューとスレッド
-
4.4 まとめ
-
5.1 例外で知る同期と非同期の違い
-
5.2 まとめ
-
6.1 関数分割
-
6.2 Promise
-
6.3 co
-
6.4 async/await
-
6.5 それぞれの方法におけるエラーの捕捉
-
6.6 Promise(エラー系)
-
6.7 co(エラー系)
-
6.8 async/await(エラー系)
-
6.9 まとめ
-
7.1 Streamを制するものは、Node.jsを制す
-
7.2 fs.createReadStream()
-
7.3 node-coreのAPIパターンを使い分けよう
-
7.4 EventEmitter
-
7.5 ES2018 Async Iteration(for await...of)
-
7.6 highWaterMark
-
7.7 Streamは難易度が高い?
-
7.8 まとめ
-
9.1 Airbnb JavaScript Style Guide
-
9.2 JavaScript Standard Style
-
9.3 ESLint
-
9.4 ESLintとコーディングガイドラインの連携
-
9.5 コードを自動フォーマットするPrettier
-
9.6 まとめ
-
11.1 公式ドキュメントではStabilityに注意しよう
-
11.2 Assertion Testing
-
11.3 Async Hooks
-
11.4 Buffer
-
11.5 C++ Addons / C・C++ Addons with N-API
-
11.6 Child Process
-
11.7 Cluster
-
11.8 Command Line Options
-
11.9 Console
-
11.10 Crypto
-
11.11 Debugger / Inspector
-
11.12 Deprecated APIs
-
11.13 DNS
-
11.14 Domain
-
11.15 ECMAScript Modules
-
11.16 Errors
-
11.17 Events
-
11.18 File System
-
11.19 Globals
-
11.20 HTTP / HTTPS
-
11.21 HTTP/2
-
11.22 Internationalization
-
11.23 Modules
-
11.24 Net
-
11.25 OS
-
11.26 Path
-
11.27 Performance Timing API
-
11.28 Policies
-
11.29 Process
-
11.30 Punycode
-
11.31 Query Strings
-
11.32 Readline
-
11.33 REPL
-
11.34 Report(Diagnostic Report)
-
11.35 Stream
-
11.36 String Decoder
-
11.37 Timers
-
11.38 TLS/SSL
-
11.39 Trace Events
-
11.40 TTY
-
11.41 UDP/Datagram
-
11.42 URL
-
11.43 Utilities(Util)
-
11.44 V8
-
11.45 VM (Executing JavaScript)
-
11.46 WASI(WebAssembly System Interface)
-
11.47 Worker Threads
-
11.48 Zlib
-
12.1 Strict モード
-
12.2 varとletの違い
-
12.3 ログを出力する場所について
-
12.4 開発環境と本番環境のconfigを切り替える
-
12.5 validatorを使った入力チェック
-
12.6 数値の仕様について
-
12.7 nullとundefinedの違い
-
12.8 JavaScriptの暗黙的型変換
-
12.9 JavaScriptのthis問題
-
12.10 Socket.IOの負荷分散
-
12.11 グラブルの安定稼働を支えるNode.js
-
12.12 PLAIDが5年間で12万行書いてわかったこと
-
12.13 Node.jsとFaaS(Function as a Service)
-
12.14 Node.jsのフレームワークはどれを使えば良いのか?
-
12.15 Node.jsでユニットテスト
-
12.16 C10K問題を解消するNode.js
-
E.1 Rest parameters
-
E.2 Spread Properties
-
E.3 Asynchronous iteration
-
E.4 Promise.prototype.finally()
-
E.5 Regular Expression improvements
-
F.1 Array.prototype.flat()
-
F.2 Array.prototype.flatMap()
-
F.3 Optional catch binding
-
F.4 Object.fromEntries()
-
F.5 String.prototype.trimStart()
-
F.6 String.prototype.trimEnd()
-
F.7 Symbol.prototype.description
-
F.8 JSONにおける\u2028と\u2029問題の改善
-
F.9 JSONにおけるサロゲート文字列のエンコード問題の改善
-
F.10 Function.prototype.toString()
-
F.11 ES2015以降のJavaScriptの学び方
-
G.1 Node.js v13
-
G.2 Node.js v14