图书介绍

hapi.js实战PDF|Epub|txt|kindle电子书版本网盘下载

hapi.js实战
  • (美)Matt Harrison著;梁宵,郭美青,翟懿博译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302479772
  • 出版时间:2017
  • 标注页数:329页
  • 文件大小:39MB
  • 文件页数:349页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

hapi.js实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 入门3

第1章 hapi简介3

1.1 hapi是什么4

1.1.1 hapi的特色6

1.1.2 hapi是哪类框架8

1.2 hapi的组成部分11

1.2.1 服务器13

1.2.2 连接13

1.2.3 路由13

1.2.4 handler13

1.2.5 插件13

1.3 何时应该(不该)使用hapi14

1.3.1 何时应该使用hapi14

1.3.2 何时不应该使用hapi15

1.4 hapi的运作方式15

1.4.1 安装hapi15

1.4.2 创建服务器16

1.4.3 添加路由16

1.4.4 注册插件17

1.4.5 运行hapi18

1.5 获得帮助18

1.5.1 hapi.js网站19

1.5.2 Make Me hapi19

1.5.3 GitHub19

1.5.4 IRC19

1.5.5 Stack Overflow20

1.5.6 阅读代码20

1.6 小结20

第2章 构建API21

2.1 设计API21

2.1.1 你应该接受这个任务21

2.1.2 收集需求22

2.1.3 设计API接口22

2.2 准备工作23

2.2.1 工作目录23

2.2.2 准备数据库和样本数据23

2.2.3 sqlite3 node模块24

2.3 获取和搜索食谱25

2.3.1 server.route()介绍25

2.3.2 路由handler26

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():设置handler中的上下文33

2.4.3 模块化handler35

2.5 身份验证37

2.5.1 模式和策略37

2.5.2 实现不记名token身份验证38

2.5.3 使用用户凭据40

2.6 食谱创建和标星40

2.6.1 测试接口40

2.6.2 接口C:创建食谱41

2.7 小结44

第3章 构建网站45

3.1 DinDin网站45

3.1.1 网站的样子45

3.1.2 网站是如何运作的47

3.1.3 设置47

3.2 网页和静态内容服务49

3.2.1 静态文件服务49

3.2.2 整个目录服务51

3.2.3 server.views():使用Handlebars动态渲染视图53

3.2.4 DRY视图:布局和片段57

3.3 使用外部API60

3.3.1 使用Wreck:调用API60

3.3.2 动态主页62

3.3.3 食谱详情页62

3.3.4 视图helper65

3.4 管理登录和用户会话67

3.4.1 hapi-auth-cookie插件67

3.4.2 表单69

3.4.3 实现登录71

3.4.4 创建食谱75

3.4.5 实现注销78

3.5 小结79

第Ⅱ部分 扩展工具箱83

第4章 深入理解路由和handler83

4.1 深入理解路由83

4.1.1 hapi的路由:路由的排序和冲突处理83

4.1.2 路由方法84

4.1.3 参数化路径85

4.1.4 hapi如何选取路由88

4.2 构建自定义handler90

4.2.1 国际化例子91

4.2.2 解析Accept-Language header92

4.2.3 第一个实现93

4.2.4 再次简化94

4.3 服务器方法96

4.4 路由先决条件99

4.4.1 异步JavaScript的并发问题99

4.4.2 指定路由先决条件101

4.4.3 使用带有先决条件的服务器方法102

4.4.4 多重串行先决条件103

4.4.5 并发先决条件:并行地运行任务105

4.5 管理文件上传107

4.5.1 使用数据输出:把文件内容读入内存108

4.5.2 使用流输出:以流的方式获取文件109

4.5.3 使用文件输出:把文件存储到磁盘110

4.5.4 额外的payload设置111

4.4 小结111

第5章 理解请求和响应113

5.1 request对象和生命周期113

5.1.1 什么是request对象113

5.1.2 请求的生命周期115

5.1.3 扩展点118

5.1.4 应该使用哪个扩展点?121

5.2 reply接口和response对象121

5.2.1 什么是reply接口?121

5.2.2 reply()的有效参数123

5.2.3 response对象124

5.2.4 使用流来响应126

5.3 处理错误128

5.3.1 程序员错误和操作错误129

5.3.2 HTTP状态码129

5.3.3 介绍Boom:创建HTTP友好的错误131

5.3.4 网站友好的HTML错误页面132

5.4 小结136

第6章 使用Joi验证139

6.1 介绍Joi140

6.1.1 Joi的工作方式140

6.1.2 一个简单例子:验证标量类型141

6.1.3 一个更复杂的例子:验证一个复合类型142

6.2 掌握Joi144

6.2.1 了解API145

6.2.2 Joi.assert()和Joi.validate()146

6.2.3 Joi中的类型转换146

6.2.4 abortEarly选项147

6.2.5 探索Joi错误148

6.3 hapi中的验证150

6.3.1 使用Joi进行输入验证150

6.3.2 验证payload152

6.3.3 验证响应155

6.3.4 使用failAction自定义验证响应156

6.4 整合:使用hapi和Joi进行Web表单验证157

6.4.1 如何工作158

6.4.2 创建骨架159

6.4.3 创建路由和视图160

6.4.4 添加验证163

6.4.5 在表单中渲染错误165

6.4.6 表单提交成功后的重定向167

6.5 小结168

第7章 使用插件构建模块化应用169

7.1 插件思想169

7.1.1 插件的定义171

7.1.2 插件的作用172

7.1.3 把所有东西放进插件174

7.1.4 Pingoo应用174

7.2 创建和加载插件176

7.2.1 创建插件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 创建一个清单187

7.3.3 使用Confidence工具实现智能配置190

7.4 插件通信193

7.4.1 全局的服务器配置193

7.4.2 通过server.expose()在插件中对外公开属性195

7.4.3 使用事件系统196

7.5 小结200

第8章 充分利用缓存201

8.1 客户端缓存202

8.1.1 手动设置header203

8.1.2 在配置中设置缓存策略203

8.1.3 重新验证和ETag204

8.2 介绍Catbox:一个多策略的对象缓存库207

8.2.1 什么是Catbox208

8.2.2 Catbox客户端和策略211

8.2.3 Staleness213

8.2.4 应该用哪个缓存策略?215

8.3 hapi应用中的服务器端缓存216

8.3.1 配置客户端216

8.3.2 使用server.cache()创建并使用Catbox策略217

8.3.3 缓存服务器方法219

8.3.4 使用键、分区和段来组织缓存数据220

8.4 小结222

第Ⅲ部分 创建健壮的应用225

第9章 身份验证和安全225

9.1 关于身份验证的深度探讨225

9.1.1 hapi身份验证概述226

9.1.2 应该选择哪种身份验证模式228

9.1.3 身份验证的scope228

9.1.4 身份验证模式229

9.2 通过Bell实现第三方身份验证231

9.2.1 什么是第三方身份验证231

9.2.2 Bell简介232

9.2.3 将Bell整合进hapi应用233

9.3 通过CORS管理跨域请求240

9.3.1 允许来自任何地方的跨域请求241

9.3.2 只接受指定源的访问243

9.3.3 处理自定义的header244

9.3.4 CORS和凭据(Cookie)246

9.3.5 CORS设置的粒度247

9.4 使用Crumb保护应用免受CSRF攻击248

9.4.1 通过CSRF令牌对抗CSRF攻击249

9.4.2 通过创建自己的漏洞来理解CSRF250

9.4.3 通过Crumb保护HTML253

9.4.4 使用Crumb保护restfulAPI254

9.5 安全相关的header255

9.6 小结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 默认异步执行263

10.1.5 Lab的语法糖264

10.2 用Code断言库制作断言265

10.2.1 什么是Code断言库265

10.2.2 Code的语法:断言语句的结构267

10.3 使用server.inject()测试hapi服务269

10.3.1 为测试准备server270

10.3.2 server.inject()的响应参数272

10.3.3 使用request payload进行测试272

10.3.4 测试需要验证的路由274

10.4 Lab进阶276

10.4.1 reporter276

10.4.2 代码覆盖率278

10.4.3 linting278

10.4.4 全局变量泄露279

10.4.5 并行执行测试279

10.5 使用stub、spies和monkey-patching测试难以测试的代码281

10.5.1 monkey-patching介绍281

10.5.2 使用Sinon的Spy和stub284

10.5.3 使用proxyquire286

10.6 小结288

第11章 投入生产环境及更多相关内容291

11.1 hapi的日志记录和Good291

11.1.1 hapi中的服务器事件291

11.1.2 通过request.log()和server.log()记录日志293

11.1.3 通过Good记录线上日志和处理监控296

11.1.4 使用多种reporter实例297

11.2 为路由生成文档298

11.2.1 路由的tags、notes和descriptions299

11.2.2 通过Lout自动生成的文档299

11.3 监控302

11.3.1 Graphite和StatsD302

11.3.2 通过StatsD度量任何指标303

11.3.3 使用Oppsy获取hapi的操作数据304

11.4 调试307

11.4.1 不要认为使用console.log()不好307

11.4.2 Node debug307

11.4.3 Node Inspector309

11.4.4 通过Poop进行Core dumps310

11.4.5 使用hapi TV调试实时请求312

11.5 部署支持SSL/TLS的应用314

11.5.1 TLS的配置项314

11.5.2 在hapi中配置TLS连接315

11.5.3 使用self-signed凭据测试SSL315

11.5.4 强制HTTPS317

11.6 小结319

附录A Node.js和npm入门321

附录B 本书用到的npm包327

热门推荐