新时期的Node.js入门

新时期的Node.js入门

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

Node.js基础特性入门,紧跟趋势,案例实践应用。

内容简介

本书分为七章,讲解了Node.js的各种基础特性,让读者快速入门,同时结合语言最新的发展趋势,让读者能够紧跟技术潮流。 本书最后两章分别提供了两个大案例,介绍了Node.js在Web开发和爬虫系统中的应用,最后在附录中,结合实际工作经验,介绍了Node.js在大型项目中的定位与应用。

章节目录

封面页

书名页

版权页

内容简介

作者简介

前言

本书定位

关于本书内容

关于本书中的代码

本书面向的读者

如何学习Node

名称约定

纠错

致谢

目录

第1章 基础知识

1.1 Node是什么

1.1.1 Node与JavaScript

1.1.2 runtime和VM

1.2 Node的内部机制

1.2.1 何为回调

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

1.2.3 单线程和多线程

1.2.4 并行和并发

1.3 事件循环(Event loop)

1.3.1 事件与循环

1.3.2 Node中的事件循环

1.3.3 process.nextTick

1.4 总结

1.5 参考资源

第2章 常用模块

2.1 Module

2.1.1 JavaScript的模块规范

2.1.2 require及其运行机制

2.1.3 require的隐患

2.1.4 模块化与作用域

2.2 Buffer

2.2.1 Buffer的构建与转换

2.2.2 Buffer的拼接

2.3 File System

2.4 HTTP服务

2.4.1 创建HTTP服务器

2.4.2 处理HTTP请求

2.4.3 Response对象

2.4.4 上传数据

2.4.5 HTTP客户端服务

2.4.6 创建代理服务器

2.5 TCP服务

2.5.1 TCP和Socket

2.5.2 创建TCP服务器

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

2.6.1 什么是SSL

2.6.2 SSL原理

2.6.3 对称加密与非对称加密

2.6.4 关于CA

2.6.5 创建HTTPS服务

2.7 WebSocket

2.7.1 保持通话

2.7.2 为什么要有WebSocket

2.7.3 WebSocket与Node

2.8 Stream

2.8.1 Stream的种类

2.8.2 ReadLine

2.8.3 自定义Stream

2.9 Events

2.9.1 事件和监听器

2.9.2 处理error事件

2.9.3 继承Events模块

2.10 多进程服务

2.10.1 child_process模块

2.10.2 spawn

2.10.3 fork

2.10.4 exec和execFile

2.10.5 各方法之间的比较

2.10.6 进程间通信

2.10.7 Cluster

2.11 Process对象

2.11.1 环境变量

2.11.2 方法和事件

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

2.12 Timer

2.12.1 常用API

2.12.2 定时器中的this

2.13 小结

2.14 引用资源

第3章 用ES6来书写Node

3.1 新时代的EMCAScript

3.1.1 JavaScript的缺陷

3.1.2 Node对新标准的支持

3.1.3 使用nvm管理Node版本

3.2 块级作用域

3.2.1 ES5中的作用域

3.2.2 let关键字

3.2.3 const关键字

3.3 数组

3.3.1 find()和findIndex()

3.3.2 from()方法

3.3.3 fill()方法

3.3.4 数组的遍历

3.3.5 TypedArray

3.4 函数

3.4.1 参数的默认值

3.4.2 Spread运算符

3.4.3 箭头函数

3.4.4 箭头函数的陷阱

3.5 Set和Map

3.5.1 Set和WeakSet

3.5.2 Map和WeakMap

3.6 Iterator

3.6.1 Java中的Iterator

3.6.2 ES6中的Iterator

3.6.3 Iterator的遍历

3.7 对象

3.7.1 新的方法

3.7.2 对象的遍历

3.8 类

3.8.1 属性和构造函数

3.8.2 类方法

3.8.3 __proto__

3.8.4 静态方法

3.9 类的继承

3.9.1 ES5中的继承

3.9.2 ES6中的继承

3.9.3 Node中的类继承

3.10 ES6的模块化标准

3.11 使用babel来转换代码

3.12 小结

3.13 引用资源

第4章 书写异步代码

4.1 异步操作的返回值

4.2 组织回调方法

4.2.1 回调与CPS

4.2.2 使用async模块简化回调

4.3 使用Promise

4.3.1 Promise的历史

4.3.2 Promise是什么

4.3.3 ES2015中的Promise

4.3.4 Promise的常用API

4.3.5 使用Promise组织异步代码

4.3.6 第三方模块的Promise

4.4 Generator,一种过渡方案

4.4.1 Generator的使用

4.4.2 Generator函数的执行

4.4.3 Generator中的错误处理

4.4.4 用Generator组织异步方法

4.4.5 Generator的自动执行

4.5 回调的终点——async/await

4.5.1 async函数的概念

4.5.2 await关键字

4.5.3 在循环中使用async方法

4.5.4 async和await小结

4.5.5 async函数的缺点

4.6 总结

4.7 引用资源

第5章 使用Koa2构建Web站点

5.1 Node Web框架的发展历程

5.1.1 Connect

5.1.2 Express

5.1.3 Koa

5.2 内容规划

5.2.1 需求分析

5.2.2 技术选型

5.3 Koa入门

5.3.1 Koa1.x与Koa2

5.3.2 context对象

5.4 middleware

5.4.1 中间件的概念

5.4.2 next方法

5.4.3 中间件的串行调用

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

5.5 常用服务的实现

5.5.1 静态文件服务

5.5.2 路由服务

5.5.3 数据存储

5.5.4 文件上传

5.5.5 页面渲染

5.6 构建健壮的Web应用

5.6.1 上传文件验证

5.6.2 使用Cookie进行身份验证

5.6.3 使用Session记录会话状态

5.7 使用Redis进行持久化

5.7.1 Node和Redis的交互

5.7.2 CURD操作

5.7.3 使用Redis持久化session

5.7.4 Redis在Node中的应用

5.8 Koa源码剖析

5.8.1 Koa的启动过程

5.8.2 中间件的加载

5.8.3 listen()方法

5.8.4 next()与return next()

5.8.5 关于Can't set headers after they are sent.

5.8.6 Context对象的实现

5.8.7 Koa的优缺点

5.9 网站部署

5.9.1 本地部署

5.9.2 部署在云服务主机上

5.9.3 通过GitHub pages来部署

5.10 总结

5.11 引用资源

第6章 爬虫系统的开发

6.1 爬虫技术概述

6.2 技术栈简介

6.2.1 request.js

6.2.2 cheerio

6.2.3 消息队列

6.3 构建脚手架

6.3.1 选择目标网站

6.3.2 分析URL结构

6.3.3 构建HTTP请求

6.3.4 解析页面元素

6.4 进行批量爬取

6.4.1 使用递归和定时器

6.4.2 多进程并行

6.5 爬虫架构的改进

6.5.1 异步流程控制

6.5.2 回到最初的目标

6.5.3 多进程模型的缺陷

6.6 进程架构的改进

6.6.1 生产/消费模型

6.6.2 生产者的实现

6.6.3 消费者的实现

6.7 反爬虫处理

6.7.1 爬虫的危害

6.7.2 识别一个爬虫

6.7.3 针对爬虫的处理

6.8 总结

6.9 引用资源

第7章 测试与调试

7.1 单元测试

7.1.1 使用Assert模块

7.1.2 Jasmine

7.1.3 Ava.js——面向未来

7.2 测试现有代码

7.3 更高维度的测试

7.3.1 基准测试

7.3.2 集成测试

7.3.3 持续集成

7.4 调试Node应用

7.4.1 语言和IDE

7.4.2 使用node-inspector

7.4.3 使用v8-inspector

7.4.4 使用IDE进行调试

7.4.5 cpu profiling

7.5 总结

7.6 引用资源

第8章 Node中的错误处理

8.1 Error模块

8.2 错误处理的几种方式

8.3 被抛弃的Domain

8.3.1 Domain模块简介

8.3.2 Domain原理

8.3.3 Domain中间件

8.3.4 Domain的缺陷

8.4 ES6中的错误处理

8.4.1 Promise

8.4.2 Generator

8.4.3 async函数

8.5 Web服务中的错误处理

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

8.5.2 Express中的错误处理

8.5.3 Koa中的错误处理

8.6 防御式编程与Let it crash

8.7 总结

8.8 引用资源

附录A 进程、线程、协程

A.1 从操作系统说起

A.2 Node中的协程

附录B Lua语言简介

B.1 Lua中的数据类型

B.2 定义一个函数

B.3 Lua中的协程

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

C.1 框架的雏形

C.2 框架的完善

C.3 总结

附录D MongoDB和Redis简介

D.1 NoSQL

D.2 MongoDB简介

D.3 Redis简介

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

E.1 Docker的一些常用命令

E.2 Redis服务

附录F npm与包管理

F.1 package.json常用字段

F.2 依赖版本的管理

新时期的Node.js入门是2018年由清华大学出版社出版,作者李锴。

得书感谢您对《新时期的Node.js入门》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
HBase入门与实践 电子书
大数据时代快速上手HBase行动指南。
Unity Shader 入门精要 电子书
本书适合Unity初学者、游戏开发者、程序员,也可以作为大专院校相关专业师生的学习用书,以及培训学校的培训教材。
Office入门与提高 电子书
#写作特色# 从零开始,循序渐进 无论读者是否从事计算机相关行业的工作,是否接触过Word 2016、Excel 2016、PowerPoint 2016,都能从本书中找到学习起点,循序渐进地完成学习过程。 紧贴实际,案例教学 全书内容均以实例为主线,在此基础上适当扩展知识点,真正实现学以致用。 全彩排版,图文并茂 全彩排版既美观大方又能够突出重点、难点。所有实例的每一步操作,均配有对应的插图和注释,以便读者在学习过程中能够直观、清晰地看到操作过程和效果,提高学习效率。 单双混排,超大容量 本书采用单、双栏混排的形式,大大扩充了信息容量,从而在有限的篇幅中为读者奉送了更多的知识和实战案例。 精选秘技,扩展学习 本书在每章以“高手私房菜”的形式为读者提炼了各种高级操作技巧,为知识点的扩展应用提供了思路。 书盘结合,互动教学 本书配套的多媒体教学光盘内容与书中知识紧密结合并互相补充。在多媒体光盘中,我们仿真工作、生活中的真实场景,通过互动教学帮助读者体验实际应用环境,从而全面理解知识点的运用方法。 #超值DVD多媒体教学光盘# 8小时全程同步教学录像 4大资源免费赠送 配套资源库 本书所有案例的素材和结果文件 扩展学习库 《Office 2016快捷键查询手册》 《WordExcelPPT 2016技巧手册》 《电脑维护与故障处理技巧查询手册》 《Excel 函数查询手册》 《移动办公技巧手册》 《网络搜索与下载技巧手册》 《常用五笔编码查询手册》 《电脑技巧查询手册》 教学视频库 Office 2016软件安装教学录像 Windows 10操作系统安装教学录像 7小时Photoshop CC教学录像 12小时电脑选购组装、维护与故障处理教学录像 办公模板库 2000个Word精选文档模板 1800个Excel典型表格模板 1500个PPT精美演示模板
WebAssembly标准入门 电子书
适读人群 :本书适合从事高性能Web前端开发、跨语言Web应用开发的技术人员学习参考,也可以作为WebAssembly标准参考手册随时查阅。 作为一种新颖的网页前端技术,WebAssembly的发展日新月异。本书基于已受浏览器普遍支持的WebAssembly极小可用特征集,致力于通过简单易懂的方式,从使用方法到虚拟机设计,讲解WebAssembly的运行原理。极小可用特征集只是快速迭代的起点,SIMD、多线程等更多特性将逐渐被添加到WebAssembly标准中。 在WebAssembly 大潮来临之际,希望本书能为该技术在国内的推广贡献绵薄之力。 本书内容要点: WebAssembly 简要介绍; 在JavaScript 中使用WebAssembly 模块的方法; WebAssembly 汇编语言及二进制格式; 使用高级语言开发WebAssembly 模块; WebAssembly 指令参考。
Kafka入门与实践 电子书
本书适合应用Kafka的专业技术人员阅读,包括但不限于大数据相关应用的开发者、运维者和爱好者。