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

hapi.js 實(shí)戰(zhàn)

hapi.js 實(shí)戰(zhàn)

定 價(jià):¥68.00

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

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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

第I部分 入門
第1章 hapi簡(jiǎn)介 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 何時(shí)應(yīng)該(不該)使用hapi 14
1.3.1 何時(shí)應(yīng)該使用hapi 14
1.3.2 何時(shí)不應(yīng)該使用hapi 15
1.4 hapi的運(yùn)作方式 15
1.4.1 安裝hapi 15
1.4.2 創(chuàng)建服務(wù)器 16
1.4.3 添加路由 16
1.4.4 注冊(cè)插件 17
1.4.5 運(yùn)行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è)計(jì)API 21
2.1.1 你應(yīng)該接受這個(gè)任務(wù) 21
2.1.2 收集需求 22
2.1.3 設(shè)計(jì)API接口 22
2.2 準(zhǔn)備工作 23
2.2.1 工作目錄 23
2.2.2 準(zhǔn)備數(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 編寫可維護(hù)的代碼 32
2.4.1 模塊化路由 32
2.4.2 用好server.bind():設(shè)置
handler中的上下文 33
2.4.3 模塊化handler 35
2.5 身份驗(yàn)證 37
2.5.1 模式和策略 37
2.5.2 實(shí)現(xiàn)不記名token身份驗(yàn)證 38
2.5.3 使用用戶憑據(jù) 40
XVI hapi.js 實(shí)戰(zhàn)
2.6 食譜創(chuàng)建和標(biāo)星 40
2.6.1 測(cè)試接口 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)站是如何運(yùn)作的 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 整個(gè)目錄服務(wù) 51
3.2.3 server.views():使用Handlebars
動(dòng)態(tài)渲染視圖 53
3.2.4 DRY 視圖:布局和片段 57
3.3 使用外部API 60
3.3.1 使用Wreck:調(diào)用API60
3.3.2 動(dòng)態(tài)主頁 62
3.3.3 食譜詳情頁 62
3.3.4 視圖helper 65
3.4 管理登錄和用戶會(huì)話 67
3.4.1 hapi-auth-cookie 插件 67
3.4.2 表單 69
3.4.3 實(shí)現(xiàn)登錄 71
3.4.4 創(chuàng)建食譜 75
3.4.5 實(shí)現(xiàn)注銷 78
3.5 小結(jié) 79
第II 部分 擴(kuò)展工具箱
第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 國(guó)際化例子 91
4.2.2 解析Accept-Language
header 92
4.2.3 第一個(gè)實(shí)現(xiàn) 93
4.2.4 再次簡(jiǎn)化 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ā)先決條件:并行地運(yùn)行
任務(wù)  105
4.5 管理文件上傳 107
4.5.1 使用數(shù)據(jù)輸出:把文件內(nèi)容
讀入內(nèi)存  108
4.5.2 使用流輸出:以流的方式獲取
文件  109
4.5.3 使用文件輸出:把文件存儲(chǔ)到
磁盤  110
4.5.4 額外的payload 設(shè)置 111
4.4 小結(jié)  111
第5 章 理解請(qǐng)求和響應(yīng) 113
5.1 request 對(duì)象和生命周期  113
5.1.1 什么是request 對(duì)象  113
5.1.2 請(qǐng)求的生命周期  115
5.1.3 擴(kuò)展點(diǎn)  118
5.1.4 應(yīng)該使用哪個(gè)擴(kuò)展點(diǎn)?  121
5.2 reply 接口和response 對(duì)象 121
5.2.1 什么是reply 接口?  121
5.2.2 reply() 的有效參數(shù)  123
XVII
目 錄
5.2.3 response對(duì)象 124
5.2.4 使用流來響應(yīng) 126
5.3 處理錯(cuò)誤 128
5.3.1 程序員錯(cuò)誤和操作錯(cuò)誤 129
5.3.2 HTTP狀態(tài)碼 129
5.3.3 介紹Boom:創(chuàng)建HTTP
友好的錯(cuò)誤 131
5.3.4 網(wǎng)站友好的HTML錯(cuò)誤
頁面 132
5.4 小結(jié) 136
第6章 使用Joi驗(yàn)證 139
6.1 介紹Joi140
6.1.1 Joi的工作方式 140
6.1.2 一個(gè)簡(jiǎn)單例子:驗(yàn)證標(biāo)量
類型 141
6.1.3 一個(gè)更復(fù)雜的例子:驗(yàn)證一個(gè)
復(fù)合類型 142
6.2 掌握J(rèn)oi144
6.2.1 了解API 145
6.2.2 Joi.assert()和Joi.validate() 146
6.2.3 Joi中的類型轉(zhuǎn)換 146
6.2.4 abortEarly選項(xiàng) 147
6.2.5 探索Joi錯(cuò)誤 148
6.3 hapi中的驗(yàn)證 150
6.3.1 使用Joi進(jìn)行輸入驗(yàn)證 150
6.3.2 驗(yàn)證payload 152
6.3.3 驗(yàn)證響應(yīng) 155
6.3.4 使用failAction自定義驗(yàn)證
響應(yīng) 156
6.4 整合:使用hapi和Joi進(jìn)行Web
表單驗(yàn)證 157
6.4.1 如何工作 158
6.4.2 創(chuàng)建骨架 159
6.4.3 創(chuàng)建路由和視圖 160
6.4.4 添加驗(yàn)證 163
6.4.5 在表單中渲染錯(cuò)誤 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 把所有東西放進(jìn)插件 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 使用選項(xiàng)配置插件 182
7.3 使用Glue組合插件 186
7.3.1 什么是Glue? 186
7.3.2 創(chuàng)建一個(gè)清單 187
7.3.3 使用Confidence工具實(shí)現(xiàn)智
能配置 190
7.4 插件通信 193
7.4.1 全局的服務(wù)器配置 193
7.4.2 通過server.expose()在插件中
對(duì)外公開屬性 195
7.4.3 使用事件系統(tǒng) 196
7.5 小結(jié) 200
第8章 充分利用緩存 201
8.1 客戶端緩存 202
8.1.1 手動(dòng)設(shè)置header 203
8.1.2 在配置中設(shè)置緩存策略 203
8.1.3 重新驗(yàn)證和ETag 204
8.2 介紹Catbox:一個(gè)多策略的對(duì)象
緩存庫 207
8.2.1 什么是Catbox 208
XVIII hapi.js 實(shí)戰(zhàn)
8.2.2 Catbox 客戶端和策略  211
8.2.3 Staleness  213
8.2.4 應(yīng)該用哪個(gè)緩存策略?  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 章 身份驗(yàn)證和安全 225
9.1 關(guān)于身份驗(yàn)證的深度探討 225
9.1.1 hapi 身份驗(yàn)證概述  226
9.1.2 應(yīng)該選擇哪種身份驗(yàn)證
模式 228
9.1.3 身份驗(yàn)證的scope  228
9.1.4 身份驗(yàn)證模式  229
9.2 通過Bell 實(shí)現(xiàn)第三方身份
驗(yàn)證 231
9.2.1 什么是第三方身份驗(yàn)證  231
9.2.2 Bell 簡(jiǎn)介  232
9.2.3 將Bell 整合進(jìn)hapi 應(yīng)用  233
9.3 通過CORS 管理跨域請(qǐng)求 240
9.3.1 允許來自任何地方的跨域
請(qǐng)求  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 保護(hù)應(yīng)用免受CSRF
攻擊 248
9.4.1 通過CSRF 令牌對(duì)抗CSRF
攻擊  249
9.4.2 通過創(chuàng)建自己的漏洞來理解
CSRF  250
9.4.3 通過Crumb 保護(hù)HTML  253
9.4.4 使用Crumb 保護(hù)restful
API  254
9.5 安全相關(guān)的header255
9.6 小結(jié) 257
第10 章 使用Lab、Code 和server.inject()
進(jìn)行測(cè)試 259
10.1 Lab 簡(jiǎn)介 259
10.1.1 第一個(gè)測(cè)試  260
10.1.2 Lab 作為本地依賴  261
10.1.3 通過experiments 組織
測(cè)試 262
10.1.4 默認(rèn)異步執(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() 測(cè)試hapi
服務(wù) 269
10.3.1 為測(cè)試準(zhǔn)備server  270
10.3.2 server.inject() 的響應(yīng)
參數(shù)  272
10.3.3 使用request payload 進(jìn)行
測(cè)試  272
10.3.4 測(cè)試需要驗(yàn)證的路由  274
10.4 Lab 進(jìn)階 276
10.4.1 reporter  276
10.4.2 代碼覆蓋率  278
10.4.3 linting  278
10.4.4 全局變量泄露  279
目 錄 XIX
10.4.5 并行執(zhí)行測(cè)試 279
10.5 使用stub、spies和monkey-patching
測(cè)試難以測(cè)試的代碼 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實(shí)例 297
11.2 為路由生成文檔 298
11.2.1 路由的tags、notes和
descriptions 299
11.2.2 通過Lout自動(dòng)生成的
文檔 299
11.3 監(jiān)控 302
11.3.1 Graphite和StatsD 302
11.3.2 通過StatsD度量任何指標(biāo) 303
11.3.3 使用Oppsy獲取hapi的操作
數(shù)據(jù) 304
11.4 調(diào)試 307
11.4.1 不要認(rèn)為使用console.log()
不好 307
11.4.2 Node debug 307
11.4.3 Node Inspector 309
11.4.4 通過Poop進(jìn)行Core
dumps 310
11.4.5 使用hapi TV調(diào)試實(shí)時(shí)
請(qǐng)求 312
11.5 部署支持SSL/TLS的應(yīng)用 314
11.5.1 TLS的配置項(xiàng) 314
11.5.2 在hapi中配置TLS連接 315
11.5.3 使用self-signed憑據(jù)測(cè)試
SSL 315
11.5.4 強(qiáng)制HTTPS 317
11.6 小結(jié) 319
附錄A Node.js和npm入門 321
附錄B 本書用到的npm包 327

本目錄推薦

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