Node.js實戰(第2版)

Node.js實戰(第2版)

《Node.js實戰(第2版)》是2020年3月人民郵電出版社出版的圖書,作者是[英]亞歷克斯·楊(Alex Young)、[美]布拉德利·馬克(Bradley Meck)、[美]麥克·坎特倫。

基本介紹

  • 書名:Node.js實戰(第2版)
  • 作者:[英]亞歷克斯·楊(Alex Young)、[美]布拉德利·馬克(Bradley Meck)、[美]麥克·坎特倫
  • 出版社:人民郵電出版社
  • 出版時間:2020年3月
  • 頁數:314 頁
  • 定價:89 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787115487308
內容簡介,圖書目錄,

內容簡介

本書是Node.js的實戰教程,涵蓋了為開發產品級Node應用程式所需要的一切特性、技巧以及相關理念。 從搭建Node開發環境,到一些簡單的演示程式,到開發複雜應用程式所必不可少的異步編程。D2版介紹了全棧kai發者所需的全部技術,包括前端構建系統、選擇Web框架、在Node中與資料庫的互動、編寫測試和部署Web程式,等等。

圖書目錄

第 一部分 Node基礎知識介紹
第 1 章 歡迎進入Node.js的世界 2
1.1 一個典型的Node Web應用程式 2
1.1.1 非阻塞I/O 3
1.1.2 事件輪詢 4
1.2 ES2015、Node和V8 5
1.2.1 Node與V8 7
1.2.2 使用特性組 8
1.2.3 了解Node的發布計畫 8
1.3 安裝Node 8
1.4 Node自帶的工具 9
1.4.1 npm 9
1.4.2 核心模組 10
1.4.3 調試器 11
1.5 三種主流的Node程式 12
1.5.1 Web應用程式 12
1.5.2 命令行工具和後台程式 13
1.5.3 桌面程式 14
1.5.4 適合Node的應用程式 14
1.6 總結 15
第 2 章 Node編程基礎 16
2.1 Node功能的組織及重用 16
2.2 開始一個新的Node項目 18
2.3 用module.exports微調模組的創建 20
2.4 用node_modules重用模組 22
2.5 注意事項 23
2.6 使用異步編程技術 24
2.7 用回調處理一次性事件 25
2.8 用事件發射器處理重複性事件 28
2.8.1 事件發射器示例 28
2.8.2 回響只應該發生一次的事件 29
2.8.3 創建事件發射器:一個PUB/SUB的例子 29
2.8.4 擴展事件監聽器:檔案監視器 32
2.9 異步開發的難題 34
2.10 異步邏輯的順序化 35
2.11 何時使用串列流程控制 36
2.12 實現串列化流程控制 37
2.13 實現並行化流程控制 39
2.14 利用社區裡的工具 41
2.15 總結 43
第 3 章 Node Web程式是什麼 44
3.1 了解Node Web程式的結構 45
3.1.1 開始一個新的Web程式 45
3.1.2 跟其他平台比一比 47
3.1.3 然後呢 47
3.2 搭建一個RESTful Web服務 47
3.3 添加資料庫 50
3.3.1 製作自己的模型API 51
3.3.2 讓文章可讀並把它存起來 53
3.4 添加用戶界面 54
3.4.1 支持多種格式 54
3.4.2 渲染模板 55
3.4.3 用npm管理客戶端依賴項 56
3.5 總結 57
D二部分 Node的Web開發
第 4 章 前端構建系統 60
4.1 了解基於Node的前端開發 60
4.2 用npm運行腳本 61
4.2.1 創建定製的npm腳本 62
4.2.2 配置前端構建工具 63
4.3 用Gulp實現自動化 63
4.3.1 把Gulp添加到項目中 64
4.3.2 Gulp任務的創建及運行 64
4.3.3 監測變化 66
4.3.4 在大項目中把任務分散到不同檔案中 66
4.4 用Webpack構建Web程式 67
4.4.1 使用打包器和外掛程式 67
4.4.2 配置和運行Webpack 68
4.4.3 用Webpack開發伺服器 68
4.4.4 載入CommonJS模組和靜態資源 70
4.5 總結 71
第 5 章 伺服器端框架 72
5.1 用戶畫像 72
5.1.1 菲爾:代理kai發者 73
5.1.2 納迪娜:開源kai發者 73
5.1.3 愛麗絲:產品kai發者 73
5.2 框架是什麼 74
5.3 Koa 74
5.3.1 設定 76
5.3.2 定義路由 76
5.3.3 REST API 77
5.3.4 優點 77
5.3.5 弱點 77
5.4 Kraken 77
5.4.1 設定 77
5.4.2 定義路由 78
5.4.3 REST API 79
5.4.4 優點 79
5.4.5 弱點 79
5.5 hapi 79
5.5.1 設定 80
5.5.2 定義路由 80
5.5.3 外掛程式81
5.5.4 REST API 82
5.5.5 優點 83
5.5.6 弱點 83
5.6 Sails.js 83
5.6.1 設定 83
5.6.2 定義路由 84
5.6.3 REST API 84
5.6.4 優點 85
5.6.5 弱點 85
5.7 DerbyJS 85
5.7.1 設定 85
5.7.2 定義路由 86
5.7.3 REST API 87
5.7.4 優點 87
5.7.5 弱點 87
5.8 Flatiron.js 87
5.8.1 設定 88
5.8.2 定義路由 88
5.8.3 REST API 89
5.8.4 優點 90
5.8.5 弱點 90
5.9 LoopBack 90
5.9.1 設定 91
5.9.2 定義路由 92
5.9.3 REST API 92
5.9.4 優點 93
5.9.5 弱點 93
5.10 比較 93
5.11 編寫模組化代碼 95
5.12 用戶選擇 95
5.13 總結 95
第 6 章 深入了解Connect和Express 96
6.1 Connect 96
6.1.1 創建Connect程式 97
6.1.2 了解Connect中間件的工作機制 97
6.1.3 組合中間件 98
6.1.4 中間件的順序 98
6.1.5 創建可配置的中間件 99
6.1.6 使用錯誤處理中間件 101
6.2 Express 103
6.2.1 生成程式框架 103
6.2.2 Express和程式的配置 107
6.2.3 渲染視圖 109
6.2.4 Express路由入門 113
6.2.5 用戶認證 120
6.2.6 註冊新用戶 124
6.2.7 已註冊用戶登錄 130
6.2.8 用戶載入中間件 133
6.2.9 創建REST API 134
6.2.10 啟用內容協商 140
6.3 總結 142
第 7 章 Web程式的模板 143
7.1 用模板保持代碼的整潔性 143
7.2 Embedded JavaScript的模板 147
7.2.1 創建模板 148
7.2.2 將EJS集成到你的程式中 149
7.2.3 在客戶端程式中使用EJS 150
7.3 使用Mustache模板語言與Hogan 151
7.3.1 創建模板 151
7.3.2 Mustache標籤 151
7.3.3 微調Hogan 154
7.4 用Pug做模板 154
7.4.1 Pug基礎知識 155
7.4.2 Pug模板中的邏輯 157
7.4.3 組織Pug模板 159
7.5 總結 163
第 8 章 存儲數據 164
8.1 關係型資料庫 164
8.2 PostgreSQL 164
8.2.1 安裝及配置 164
8.2.2 創建資料庫 165
8.2.3 從Node中連線Postgres 165
8.2.4 定義表 166
8.2.5 插入數據 166
8.2.6 更新數據 166
8.2.7 查詢數據 167
8.3 Knex 167
8.3.1 查詢構建器 168
8.3.2 用Knex實現連線和查詢 168
8.3.3 切換資料庫 170
8.3.4 注意抽象漏洞 171
8.4 MySQL和PostgreSQL 171
8.5 ACID保證 172
8.5.1 原子性:無論成敗,事務必須整體執行 172
8.5.2 一致性:始終確保約束條件 172
8.5.3 隔離性:並發事務不會相互干擾 172
8.5.4 耐用性:事務是永久性的 173
8.6 NoSQL 173
8.7 分散式資料庫 173
8.8 MongoDB 174
8.8.1 安裝和配置 174
8.8.2 連線MongoDB 174
8.8.3 插入文檔 175
8.8.4 查詢 176
8.8.5 使用MongoDB標識 177
8.8.6 使用複製集 178
8.8.7 了解寫關注 180
8.9 鍵/值存儲 181
8.10 Redis 181
8.10.1 安裝和配置 182
8.10.2 初始化 182
8.10.3 處理鍵/值對 183
8.10.4 處理鍵 184
8.10.5 編碼與數據類型 184
8.10.6 使用散列表 186
8.10.7 使用列表 186
8.10.8 使用集合 187
8.10.9 用頻道實現發布/訂閱功能 188
8.10.10 提升性能 189
8.11 嵌入式資料庫 189
8.12 LevelDB 190
8.12.1 LevelUP與LevelDOWN 190
8.12.2 安裝 191
8.12.3 API概覽 191
8.12.4 初始化 191
8.12.5 鍵/值編碼 192
8.12.6 鍵/值對的讀寫 192
8.12.7 可插拔的後台 193
8.12.8 模組化資料庫 194
8.13 昂貴的序列化和反序列化 195
8.14 瀏覽器記憶體儲 196
8.14.1 Web存儲:localStorage和sessionStorage 196
8.14.2 值的讀寫 197
8.14.3 localForage 199
8.14.4 讀和寫 199
8.15 存儲託管 200
8.16 選哪個資料庫 201
8.17 總結 201
第 9 章 測試Node程式 202
9.1 單元測試 203
9.1.1 assert模組 203
9.1.2 Mocha 206
9.1.3 Vows 211
9.1.4 Chai 213
9.1.5 Should.js 214
9.1.6 Sinon.JS的探測器和存根 216
9.2 功能測試 218
9.3 處理失敗的測試 221
9.3.1 獲取更詳細的日誌 221
9.3.2 更好的棧跟蹤 223
9.4 總結 224
第 10 章 Node程式的部署及運維 225
10.1 安置Node程式 225
10.1.1 平台即服務 226
10.1.2 伺服器 227
10.1.3 容器 228
10.2 部署的基礎知識 229
10.2.1 從Git庫部署 229
10.2.2 保證Node不掉線 230
10.3 線上時長和性能的zui大化 231
10.3.1 用Upstart保證線上時長 232
10.3.2 集群API:充分利用多核處理器 233
10.3.3 靜態檔案及代理 235
10.4 總結 236
第三部分 超越Web開發
第 11 章 編寫命令行程式 238
11.1 了解慣例和理念 238
11.2 parse-json 239
11.3 使用命令行參數 239
11.3.1 解析命令行參數 239
11.3.2 驗證參數 240
11.3.3 將stdin作為檔案傳遞 241
11.4 用npm分享命令行工具 242
11.5 用管道連線腳本 243
11.5.1 將數據通過管道傳給parse-json 243
11.5.2 處理錯誤和退出碼 243
11.5.3 在Node中使用管道 245
11.5.4 管道與命令的執行順序 246
11.6 解釋真正的腳本 247
11.7 總結 247
第 12 章 用Electron征服桌面 248
12.1 認識Electron 248
12.1.1 Electron的技術棧 249
12.1.2 界面設計 250
12.2 創建一個Electron程式 250
12.3 搭建完整的桌面端程式 252
12.3.1 引導React與Babel 253
12.3.2 安裝依賴項 253
12.3.3 設定Webpack 254
12.4 React程式 255
12.4.1 定義Request組件 256
12.4.2 定義Response組件 258
12.4.3 React組件之間的通信 261
12.5 構建與分發 261
12.5.1 用Electron打包器構建程式 261
12.5.2 打包 262
12.6 總結 263
附錄 A 安裝Node 264
附錄 B 自動化的網路抓取 267
附錄 C Connect的官方中間件 277
術語表 307

相關詞條

熱門詞條

聯絡我們