图书介绍

Web前端技术丛书 新时期的Node.js入门PDF|Epub|txt|kindle电子书版本网盘下载

Web前端技术丛书 新时期的Node.js入门
  • 李锴著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302487807
  • 出版时间:2018
  • 标注页数:279页
  • 文件大小:29MB
  • 文件页数:294页
  • 主题词:JAVA语言-程序设计

PDF下载


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

下载说明

Web前端技术丛书 新时期的Node.js入门PDF格式电子书版下载

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

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

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

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

图书目录

第1章 基础知识1

1.1 Node是什么1

1.1.1 Node与JavaScript1

1.1.2 runtime和VM2

1.2 Node的内部机制3

1.2.1何为回调3

1.2.2同步/异步和阻塞/非阻塞4

1.2.3单线程和多线程6

1.2.4并行和并发7

1.3事件循环(Event loop)8

1.3.1事件与循环8

1.3.2 Node中的事件循环9

1.3.3 process.nextTick13

1.4总结16

1.5参考资源16

第2章 常用模块17

2.1 Module17

2.1.1 JavaScript的模块规范17

2.1.2 require及其运行机制18

2.1.3 require的隐患20

2.1.4模块化与作用域20

2.2 Buffer22

2.2.1 Buffer的构建与转换23

2.2.2 Buffer的拼接24

2.3 File System26

2.4 HTTP服务30

2.4.1创建HTTP服务器30

2.4.2处理HTTP请求32

2.4.3 Response对象34

2.4.4上传数据35

2.4.5 HTTP客户端服务38

2.4.6创建代理服务器39

2.5 TCP服务40

2.5.1 TCP和Socket41

2.5.2创建TCP服务器41

2.6更安全的传输方式——SSL42

2.6.1什么是S SL43

2.6.2 SSL原理43

2.6.3对称加密与非对称加密44

2.6.4关于CA45

2.6.5创建HTTPS服务45

2.7 WebSocket48

2.7.1保持通话48

2.7.2为什么要有WebSocket49

2.7.3 WebSocket与Node50

2.8 Stream50

2.8.1 Stream的种类50

2.8.2 ReadLine53

2.8.3自定义Stream54

2.9 Events55

2.9.1事件和监听器55

2.9.2处理error事件56

2.9.3继承Events模块57

2.10多进程服务58

2.10.1 child_process模块58

2.10.2 spawn58

2.10.3 fork59

2.10.4 exec和execFile60

2.10.5各方法之间的比较62

2.10.6进程间通信64

2.10.7 Cluster65

2.11 Process对象66

2.11.1环境变量67

2.11.2方法和事件67

2.11.3一个例子:修改所在的时区68

2.12 Timer70

2.12.1常用API70

2.12.2定时器中的this71

2.13小结72

2.14引用资源72

第3章用ES6来书写Node73

3.1新时代的EMCAScript73

3.1.1 JavaScript的缺陷73

3.1.2 Node对新标准的支持74

3.1.3使用nvm管理Node版本75

3.2块级作用域75

3.2.1 ES5中的作用域75

3.2.2 let关键字77

3.2.3 const关键字78

3.3数组78

3.3.1 find()和findIndex()79

3.3.2 from()方法79

3.3.3 fill()方法81

3.3.4数组的遍历81

3.3.5 TypedArray82

3.4函数82

3.4.1参数的默认值82

3.4.2 Spread运算符83

3.4.3箭头函数83

3.4.4箭头函数的陷阱86

3.5 Set和Map87

3.5.1 Set和WeakSet87

3.5.2 Map和WeakMap88

3.6 Iterator89

3.6.1 Java中的Iterator89

3.6.2 ES6中的Iterator89

3.6.3 Iterator的遍历90

3.7对象91

3.7.1新的方法91

3.7.2对象的遍历92

3.8类93

3.8.1属性和构造函数94

3.8.2类方法94

3.8.3 __proto95

3.8.4静态方法96

3.9类的继承96

3.9.1 ES5中的继承96

3.9.2 ES6中的继承98

3.9.3 Node中的类继承100

3.10 ES6的模块化标准101

3.11使用babel来转换代码102

3.12小结106

3.13引用资源106

第4章 书写异步代码107

4.1异步操作的返回值108

4.2组织回调方法108

4.2.1回调与CPS108

4.2.2使用 async模块简化回调110

4.3使用Promise112

4.3.1 Promise的历史112

4.3.2 Promise是什么113

4.3.3 ES2015中的Promise114

4.3.4 Promise的常用API116

4.3.5使用Promise组织异步代码119

4.3.6第三方模块的Promise120

4.4 Generator,一种过渡方案122

4.4.1 Generator的使用122

4.4.2 Generator函数的执行123

4.4.3 Generator中的错误处理126

4.4.4用Generator组织异步方法127

4.4.5 Generator的自动执行128

4.5回调的终点——async/await131

4.5.1 async函数的概念131

4.5.2 await关键字133

4.5.3在循环中使用async方法135

4.5.4 async和await小结136

4.5.5 async函数的缺点137

4.6总结138

4.7引用资源139

第5章 使用Koa2构建Web站点140

5.1 Node Web框架的发展历程140

5.1.1 Connect140

5.1.2 Express141

5.1.3 Koa141

5.2内容规划142

5.2.1需求分析142

5.2.2技术选型142

5.3 Koa入门143

5.3.1 Koal.x与Koa2143

5.3.2 context对象144

5.4 middleware148

5.4.1中间件的概念148

5.4.2 next方法150

5.4.3中间件的串行调用151

5.4.4一个例子——如何实现超时响应152

5.5常用服务的实现154

5.5.1静态文件服务154

5.5.2路由服务155

5.5.3数据存储156

5.5.4文件上传160

5.5.5页面渲染163

5.6构建健壮的Web应用165

5.6.1上传文件验证166

5.6.2使用Cookie进行身份验证167

5.6.3使用Session记录会话状态170

5.7使用Redis进行持久化173

5.7.1 Node和Redis的交互173

5.7.2 CURD操作174

5.7.3使用Redis持久化session176

5.7.4 Redis在Node中的应用179

5.8 Koa源码剖析180

5.8.1 Koa的启动过程180

5.8.2中间件的加载181

5.8.3 listen()方法184

5.8.4 next()与return next()185

5.8.5关于Can’t set headers after they are sent186

5.8.6 Context对象的实现187

5.8.7 Koa的优缺点189

5.9网站部署190

5.9.1本地部署190

5.9.2部署在云服务主机上191

5.9.3通过GitHub pages来部署193

5.10总结194

5.11引用资源194

第6章 爬虫系统的开发195

6.1爬虫技术概述196

6.2技术栈简介196

6.2.1 request.js196

6.2.2 cheerio197

6.2.3消息队列199

6.3构建脚手架199

6.3.1选择目标网站199

6.3.2分析URL结构200

6.3.3构建HTTP请求200

6.3.4解析页面元素201

6.4进行批量爬取203

6.4.1使用递归和定时器203

6.4.2多进程并行205

6.5爬虫架构的改进206

6.5.1异步流程控制206

6.5.2回到最初的目标206

6.5.3多进程模型的缺陷208

6.6进程架构的改进208

6.6.1生产/消费模型208

6.6.2生产者的实现209

6.6.3消费者的实现211

6.7反爬虫处理213

6.7.1爬虫的危害213

6.7.2识别一个爬虫213

6.7.3针对爬虫的处理214

6.8总结216

6.9引用资源216

第7章 测试与调试217

7.1单元测试218

7.1.1使用Assert模块218

7.1.2 Jasmine219

7.1.3 Ava.js——面向未来224

7.2测试现有代码227

7.3更高维度的测试228

7.3.1基准测试228

7.3.2集成测试229

7.3.3持续集成229

7.4调试Node应用231

7.4.1语言和IDE232

7.4.2使用node-inspector233

7.4.3使用v8-inspector234

7.4.4使用IDE进行调试236

7.4.5 cpu profiling237

7.5总结239

7.6引用资源239

第8章Node中的错误处理240

8.1 Error模块241

8.2错误处理的几种方式241

8.3被抛弃的Domain243

8.3.1 Domain模块简介243

8.3.2 Domain原理247

8.3.3 Domain中间件249

8.3.4 Domain的缺陷249

8.4 ES6中的错误处理250

8.4.1 Promise250

8.4.2 Generator250

8.4.3 async函数251

8.5 Web服务中的错误处理251

8.5.1针对每个请求的错误处理251

8.5.2 Express中的错误处理252

8.5.3 Koa中的错误处理252

8.6防御式编程与Let it crash253

8.7总结256

8.8引用资源256

附录A进程、线程、协程257

A.1从操作系统说起257

A.2 Node中的协程258

附录B Lua语言简介259

B.1 Lua中的数据类型259

B.2定义一个函数260

B.3 Lua中的协程261

附录C从零开发一个Node Web框架263

C.1框架的雏形263

C.2框架的完善264

C.3总结268

附录D MongoDB和Redis简介269

D.l NoSQL269

D.2 MongoDB简介269

D.3 Redis简介271

附录E使用Docker来实现虚拟化274

E.1 Docker的一些常用命令274

E.2 Redis服务275

附录F npm与包管理277

F.1 package .json常用字段277

F.2依赖版本的管理278

热门推荐