注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計hapi.js 實戰(zhàn)

hapi.js 實戰(zhàn)

hapi.js 實戰(zhàn)

定 價:¥68.00

作 者: (美)Matt Harrison
出版社: 清華大學(xué)出版社
叢編項: Web開發(fā)經(jīng)典叢書
標 簽: 暫缺

ISBN: 9787302479772 出版時間: 2017-09-01 包裝:
開本: 16開 頁數(shù): 352 字數(shù):  

內(nèi)容簡介

  hapi.js是圍繞三個基本理念構(gòu)建的Node.js開發(fā)框架。一是開發(fā)效率,hapi簡明的設(shè)置允許快速構(gòu)建和運行應(yīng)用;二是可維護性,hapi的模塊化設(shè)計方便了擴展和改進;三是靈活性,可用插件來擴展和自定義hapi的輕量級內(nèi)核?!秇api.js實戰(zhàn) 一書緊貼實用,指導(dǎo)你使用Node.js和hapi.js框架來構(gòu)建API、服務(wù)器和應(yīng)用。開篇呈現(xiàn)一個通俗易懂的Node.js Web應(yīng)用模型,從中可清晰了解hapi所扮演的角色。此后講解構(gòu)建API并將其集成到Web應(yīng)用的完整過程,將穿插介紹驗證、測試、身份驗證和部署等重要主題。*后討論如何構(gòu)建性能卓越、安全可靠的應(yīng)用。主要特色◆ Node應(yīng)用設(shè)計的*佳實踐◆ 使用hapi構(gòu)建API◆ 維護和擴展應(yīng)用◆ 使用插件擴展hapi在學(xué)習(xí)本書前,讀者應(yīng)熟練掌握JavaScript技能。具有Node.js經(jīng)驗有助于學(xué)習(xí)本書,但不是必需的。

作者簡介

暫缺《hapi.js 實戰(zhàn)》作者簡介

圖書目錄

第I部分 入門
第1章 hapi簡介 3
1.1 hapi是什么 4
1.1.1 hapi的特色 6
1.1.2 hapi是哪類框架 8
1.2 hapi的組成部分 11
1.2.1 服務(wù)器 13
1.2.2 連接 13
1.2.3 路由 13
1.2.4 handler 13
1.2.5 插件 13
1.3 何時應(yīng)該(不該)使用hapi 14
1.3.1 何時應(yīng)該使用hapi 14
1.3.2 何時不應(yīng)該使用hapi 15
1.4 hapi的運作方式 15
1.4.1 安裝hapi 15
1.4.2 創(chuàng)建服務(wù)器 16
1.4.3 添加路由 16
1.4.4 注冊插件 17
1.4.5 運行hapi 18
1.5 獲得幫助 18
1.5.1 hapi.js網(wǎng)站 19
1.5.2 Make Me hapi 19
1.5.3 GitHub 19
1.5.4 IRC 19
1.5.5 Stack Overflow 20
目 錄
1.5.6 閱讀代碼 20
1.6 小結(jié) 20
第2章 構(gòu)建API 21
2.1 設(shè)計API 21
2.1.1 你應(yīng)該接受這個任務(wù) 21
2.1.2 收集需求 22
2.1.3 設(shè)計API接口 22
2.2 準備工作 23
2.2.1 工作目錄 23
2.2.2 準備數(shù)據(jù)庫和樣本數(shù)據(jù) 23
2.2.3 sqlite3 node模塊 24
2.3 獲取和搜索食譜 25
2.3.1 server.route()介紹 25
2.3.2 路由handler 26
2.3.3 接口A:獲取所有食譜 28
2.3.4 接口A:搜索食譜 30
2.3.5 接口B:獲取單一食譜 31
2.4 編寫可維護的代碼 32
2.4.1 模塊化路由 32
2.4.2 用好server.bind():設(shè)置
handler中的上下文 33
2.4.3 模塊化handler 35
2.5 身份驗證 37
2.5.1 模式和策略 37
2.5.2 實現(xiàn)不記名token身份驗證 38
2.5.3 使用用戶憑據(jù) 40
XVI hapi.js 實戰(zhàn)
2.6 食譜創(chuàng)建和標星 40
2.6.1 測試接口 40
2.6.2 接口C:創(chuàng)建食譜 41
2.7 小結(jié) 44
第3 章 構(gòu)建網(wǎng)站 45
3.1 DinDin 網(wǎng)站 45
3.1.1 網(wǎng)站的樣子 45
3.1.2 網(wǎng)站是如何運作的 47
3.1.3 設(shè)置 47
3.2 網(wǎng)頁和靜態(tài)內(nèi)容服務(wù) 49
3.2.1 靜態(tài)文件服務(wù) 49
3.2.2 整個目錄服務(wù) 51
3.2.3 server.views():使用Handlebars
動態(tài)渲染視圖 53
3.2.4 DRY 視圖:布局和片段 57
3.3 使用外部API 60
3.3.1 使用Wreck:調(diào)用API60
3.3.2 動態(tài)主頁 62
3.3.3 食譜詳情頁 62
3.3.4 視圖helper 65
3.4 管理登錄和用戶會話 67
3.4.1 hapi-auth-cookie 插件 67
3.4.2 表單 69
3.4.3 實現(xiàn)登錄 71
3.4.4 創(chuàng)建食譜 75
3.4.5 實現(xiàn)注銷 78
3.5 小結(jié) 79
第II 部分 擴展工具箱
第4 章 深入理解路由和handler 83
4.1 深入理解路由 83
4.1.1 hapi 的路由:路由的排序和
沖突處理 83
4.1.2 路由方法 84
4.1.3 參數(shù)化路徑 85
4.1.4 hapi 如何選取路由 88
4.2 構(gòu)建自定義handler 90
4.2.1 國際化例子 91
4.2.2 解析Accept-Language
header 92
4.2.3 第一個實現(xiàn) 93
4.2.4 再次簡化 94
4.3 服務(wù)器方法 96
4.4 路由先決條件 99
4.4.1 異步JavaScript 的并發(fā)問題 99
4.4.2 指定路由先決條件  101
4.4.3 使用帶有先決條件的服務(wù)器
方法  102
4.4.4 多重串行先決條件  103
4.4.5 并發(fā)先決條件:并行地運行
任務(wù)  105
4.5 管理文件上傳 107
4.5.1 使用數(shù)據(jù)輸出:把文件內(nèi)容
讀入內(nèi)存  108
4.5.2 使用流輸出:以流的方式獲取
文件  109
4.5.3 使用文件輸出:把文件存儲到
磁盤  110
4.5.4 額外的payload 設(shè)置 111
4.4 小結(jié)  111
第5 章 理解請求和響應(yīng) 113
5.1 request 對象和生命周期  113
5.1.1 什么是request 對象  113
5.1.2 請求的生命周期  115
5.1.3 擴展點  118
5.1.4 應(yīng)該使用哪個擴展點?  121
5.2 reply 接口和response 對象 121
5.2.1 什么是reply 接口?  121
5.2.2 reply() 的有效參數(shù)  123
XVII
目 錄
5.2.3 response對象 124
5.2.4 使用流來響應(yīng) 126
5.3 處理錯誤 128
5.3.1 程序員錯誤和操作錯誤 129
5.3.2 HTTP狀態(tài)碼 129
5.3.3 介紹Boom:創(chuàng)建HTTP
友好的錯誤 131
5.3.4 網(wǎng)站友好的HTML錯誤
頁面 132
5.4 小結(jié) 136
第6章 使用Joi驗證 139
6.1 介紹Joi140
6.1.1 Joi的工作方式 140
6.1.2 一個簡單例子:驗證標量
類型 141
6.1.3 一個更復(fù)雜的例子:驗證一個
復(fù)合類型 142
6.2 掌握Joi144
6.2.1 了解API 145
6.2.2 Joi.assert()和Joi.validate() 146
6.2.3 Joi中的類型轉(zhuǎn)換 146
6.2.4 abortEarly選項 147
6.2.5 探索Joi錯誤 148
6.3 hapi中的驗證 150
6.3.1 使用Joi進行輸入驗證 150
6.3.2 驗證payload 152
6.3.3 驗證響應(yīng) 155
6.3.4 使用failAction自定義驗證
響應(yīng) 156
6.4 整合:使用hapi和Joi進行Web
表單驗證 157
6.4.1 如何工作 158
6.4.2 創(chuàng)建骨架 159
6.4.3 創(chuàng)建路由和視圖 160
6.4.4 添加驗證 163
6.4.5 在表單中渲染錯誤 165
6.4.6 表單提交成功后的重定向 167
6.5 小結(jié) 168
第7章 使用插件構(gòu)建模塊化應(yīng)用 169
7.1 插件思想 169
7.1.1 插件的定義 171
7.1.2 插件的作用 172
7.1.3 把所有東西放進插件 174
7.1.4 Pingoo應(yīng)用 174
7.2 創(chuàng)建和加載插件 176
7.2.1 創(chuàng)建插件 176
7.2.2 使用server.register()加載
插件 179
7.2.3 插件依賴 180
7.2.4 使用選項配置插件 182
7.3 使用Glue組合插件 186
7.3.1 什么是Glue? 186
7.3.2 創(chuàng)建一個清單 187
7.3.3 使用Confidence工具實現(xiàn)智
能配置 190
7.4 插件通信 193
7.4.1 全局的服務(wù)器配置 193
7.4.2 通過server.expose()在插件中
對外公開屬性 195
7.4.3 使用事件系統(tǒng) 196
7.5 小結(jié) 200
第8章 充分利用緩存 201
8.1 客戶端緩存 202
8.1.1 手動設(shè)置header 203
8.1.2 在配置中設(shè)置緩存策略 203
8.1.3 重新驗證和ETag 204
8.2 介紹Catbox:一個多策略的對象
緩存庫 207
8.2.1 什么是Catbox 208
XVIII hapi.js 實戰(zhàn)
8.2.2 Catbox 客戶端和策略  211
8.2.3 Staleness  213
8.2.4 應(yīng)該用哪個緩存策略?  215
8.3 hapi 應(yīng)用中的服務(wù)器端緩存 216
8.3.1 配置客戶端  216
8.3.2 使用server.cache() 創(chuàng)建并使用
Catbox 策略  217
8.3.3 緩存服務(wù)器方法  219
8.3.4 使用鍵、分區(qū)和段來組織緩存
數(shù)據(jù)  220
8.4 小結(jié) 222
第Ⅲ部分 創(chuàng)建健壯的應(yīng)用
第9 章 身份驗證和安全 225
9.1 關(guān)于身份驗證的深度探討 225
9.1.1 hapi 身份驗證概述  226
9.1.2 應(yīng)該選擇哪種身份驗證
模式 228
9.1.3 身份驗證的scope  228
9.1.4 身份驗證模式  229
9.2 通過Bell 實現(xiàn)第三方身份
驗證 231
9.2.1 什么是第三方身份驗證  231
9.2.2 Bell 簡介  232
9.2.3 將Bell 整合進hapi 應(yīng)用  233
9.3 通過CORS 管理跨域請求 240
9.3.1 允許來自任何地方的跨域
請求  241
9.3.2 只接受指定源的訪問  243
9.3.3 處理自定義的header  244
9.3.4 CORS 和憑據(jù)(Cookie)  246
9.3.5 CORS 設(shè)置的粒度  247
9.4 使用Crumb 保護應(yīng)用免受CSRF
攻擊 248
9.4.1 通過CSRF 令牌對抗CSRF
攻擊  249
9.4.2 通過創(chuàng)建自己的漏洞來理解
CSRF  250
9.4.3 通過Crumb 保護HTML  253
9.4.4 使用Crumb 保護restful
API  254
9.5 安全相關(guān)的header255
9.6 小結(jié) 257
第10 章 使用Lab、Code 和server.inject()
進行測試 259
10.1 Lab 簡介 259
10.1.1 第一個測試  260
10.1.2 Lab 作為本地依賴  261
10.1.3 通過experiments 組織
測試 262
10.1.4 默認異步執(zhí)行  263
10.1.5 Lab 的語法糖  264
10.2 用Code 斷言庫制作斷言 265
10.2.1 什么是Code 斷言庫  265
10.2.2 Code 的語法:斷言語句的
結(jié)構(gòu)  267
10.3 使用server.inject() 測試hapi
服務(wù) 269
10.3.1 為測試準備server  270
10.3.2 server.inject() 的響應(yīng)
參數(shù)  272
10.3.3 使用request payload 進行
測試  272
10.3.4 測試需要驗證的路由  274
10.4 Lab 進階 276
10.4.1 reporter  276
10.4.2 代碼覆蓋率  278
10.4.3 linting  278
10.4.4 全局變量泄露  279
目 錄 XIX
10.4.5 并行執(zhí)行測試 279
10.5 使用stub、spies和monkey-patching
測試難以測試的代碼 281
10.5.1 monkey-patching介紹 281
10.5.2 使用Sinon的Spy和stub 284
10.5.3 使用proxyquire 286
10.6 小結(jié) 288
第11章 投入生產(chǎn)環(huán)境及更多相關(guān)
內(nèi)容 291
11.1 hapi的日志記錄和Good 291
11.1.1 hapi中的服務(wù)器事件 291
11.1.2 通過request.log()和
server.log()記錄日志 293
11.1.3 通過Good記錄線上日志和
處理監(jiān)控 296
11.1.4 使用多種reporter實例 297
11.2 為路由生成文檔 298
11.2.1 路由的tags、notes和
descriptions 299
11.2.2 通過Lout自動生成的
文檔 299
11.3 監(jiān)控 302
11.3.1 Graphite和StatsD 302
11.3.2 通過StatsD度量任何指標 303
11.3.3 使用Oppsy獲取hapi的操作
數(shù)據(jù) 304
11.4 調(diào)試 307
11.4.1 不要認為使用console.log()
不好 307
11.4.2 Node debug 307
11.4.3 Node Inspector 309
11.4.4 通過Poop進行Core
dumps 310
11.4.5 使用hapi TV調(diào)試實時
請求 312
11.5 部署支持SSL/TLS的應(yīng)用 314
11.5.1 TLS的配置項 314
11.5.2 在hapi中配置TLS連接 315
11.5.3 使用self-signed憑據(jù)測試
SSL 315
11.5.4 強制HTTPS 317
11.6 小結(jié) 319
附錄A Node.js和npm入門 321
附錄B 本書用到的npm包 327

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.dappsexplained.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號