Node.js 实战 第2版 PDF 文档
本书是 Node.js 的实战教程,涵盖了为开发产品级 Node 应用程序所需要的一切特性、技巧以及相关理念。从搭建 Node 开发环境,到一些简单的演示程序,到开发复杂应用程序所必不可少的异步编程。第 2 版介绍了全栈开发者所需的全部技术,包括前端构建系统、选择 Web 框架、在 Node 中与数据库的交互、编写测试和部署 Web 程序,等等。
本书适合 Web 开发人员阅读。
《Node.js 实战》的第 1 版出版之后发生了很多事情,io.js 问世,治理模型也发生了翻天覆地的变化。Node 的包管理器孵化出了一家成功的新公司——npm,Babel 和 Electron 等技术也改变了 Node 开发。
虽然 Node 的核心库变化不大,但 JavaScript 变了,大多数开发人员都用上了 ES2015 的功能特性,所以我们改写了上一版中的所有代码,用上了箭头函数、常量和解构。因为 Node 的库和自带的工具看起来仍然和 4.x 之前的版本差不多,所以我们在这一版的更新中瞄准了社区。
为了体现 Node 开发人员在实际工作中面临的问题,本书在结构上进行了调整。Express 和Connect 的分量轻了,涉及的技术范围广了。书中介绍了全栈开发者所需的全部技术,包括前端构建系统、选择 Web 框架、在 Node 中与数据库的交互、编写测试和部署 Web 程序。
除了 Web 开发,本书还有编写命令行程序和 Electron 桌面程序的章节,让你充分利用自己的Node 和 JavaScript 技能。
本书不仅要向你介绍 Node 和它的生态系统,还想尽可能让你了解那些影响 Node 发展的背景知识,比如一般在 Node 和 JavaScript 书籍中并不介绍的 Unix 哲学和如何正确、安全地使用数据库。希望这些知识能拓宽你的眼界,加深你对 Node 和 JavaScript 的理解,帮你在面临新的问题时找到解决办法。
目录
第一部分 Node 基础知识介绍
第 1 章 欢迎进入 Node.js 的世界
1.1 一个典型的 Node Web 应用程序
1.1.1 非阻塞 I/O
1.1.2 事件轮询
1.2 ES2015、Node 和 V8
1.2.1 Node 与 V8
1.2.2 使用特性组
1.2.3 了解 Node 的发布计划
1.3 安装 Node
1.4 Node 自带的工具
1.4.1 npm
1.4.2 核心模块
1.4.3 调试器
1.5 三种主流的 Node 程序
1.5.1 Web 应用程序
1.5.2 命令行工具和后台程序
1.5.3 桌面程序
1.5.4 适合 Node 的应用程序
1.6 总结
第 2 章 Node 编程基础
2.1 Node 功能的组织及重用
2.2 开始一个新的 Node 项目
创建模块
2.3 用 module.exports 微调模块的创建
2.4 用 node_modules 重用模块
2.5 注意事项
2.6 使用异步编程技术
2.7 用回调处理一次性事件
2.8 用事件发射器处理重复性事件
2.8.1 事件发射器示例
2.8.2 响应只应该发生一次的事件
2.8.3 创建事件发射器:一个 PUB/SUB 的例子
2.8.4 扩展事件监听器:文件监视器
2.9 异步开发的难题
2.10 异步逻辑的顺序化
2.11 何时使用串行流程控制
2.12 实现串行化流程控制
2.13 实现并行化流程控制
2.14 利用社区里的工具
2.15 总结
第 3 章 Node Web 程序是什么
3.1 了解 Node Web 程序的结构
3.1.1 开始一个新的 Web 程序
3.1.2 跟其他平台比一比
3.1.3 然后呢
3.2 搭建一个 RESTful Web 服务
3.3 添加数据库
3.3.1 制作自己的模型 API
3.3.2 让文章可读并把它存起来
3.4 添加用户界面
3.4.1 支持多种格式
3.4.2 渲染模板
3.4.3 用 npm 管理客户端依赖项
3.5 总结
第二部分 Node 的 Web 开发
第 4 章 前端构建系统
4.1 了解基于 Node 的前端开发
4.2 用 npm 运行脚本
4.2.1 创建定制的 npm 脚本
4.2.2 配置前端构建工具
4.3 用 Gulp 实现自动化
4.3.1 把 Gulp 添加到项目中
4.3.2 Gulp 任务的创建及运行
4.3.3 监测变化
4.3.4 在大项目中把任务分散到不同文件中
4.4 用 Webpack 构建 Web 程序
4.4.1 使用打包器和插件
4.4.2 配置和运行 Webpack
4.4.3 用 Webpack 开发服务器
4.4.4 加载 CommonJS 模块和静态资源
4.5 总结
第 5 章 服务器端框架
5.1 用户画像
5.1.1 菲尔:代理开发者
5.1.2 纳迪娜:开源开发者
5.1.3 爱丽丝:产品开发者
5.2 框架是什么
5.3 Koa
5.3.1 设置
5.3.2 定义路由
5.3.3 REST API
5.3.4 优点
5.3.5 弱点
5.4 Kraken
5.4.1 设置
5.4.2 定义路由
5.4.3 REST API
5.4.4 优点
5.4.5 弱点
5.5 hapi
5.5.1 设置
5.5.2 定义路由
5.5.3 插件
5.5.4 REST API
5.5.5 优点
5.5.6 弱点
5.6 Sails.js
5.6.1 设置
5.6.2 定义路由
5.6.3 REST API
5.6.4 优点
5.6.5 弱点
5.7 DerbyJS
5.7.1 设置
5.7.2 定义路由
5.7.3 REST API
5.7.4 优点
5.7.5 弱点
5.8 Flatiron.js
5.8.1 设置
5.8.2 定义路由
5.8.3 REST API
5.8.4 优点
5.8.5 弱点
5.9 LoopBack
5.9.1 设置
5.9.2 定义路由
5.9.3 REST API
5.9.4 优点
5.9.5 弱点
5.10 比较
HTTP 服务器和路由
5.11 编写模块化代码
5.12 用户选择
5.13 总结
第 6 章 深入了解 Connect 和 Express
6.1 Connect
6.1.1 创建 Connect 程序
6.1.2 了解 Connect 中间件的工作机制
6.1.3 组合中间件
6.1.4 中间件的顺序
6.1.5 创建可配置的中间件
6.1.6 使用错误处理中间件
6.2 Express
6.2.1 生成程序框架
6.2.2 Express 和程序的配置
6.2.3 渲染视图
6.2.4 Express 路由入门
6.2.5 用户认证
6.2.6 注册新用户
6.2.7 已注册用户登录
6.2.8 用户加载中间件
6.2.9 创建 REST API
6.2.10 启用内容协商
6.3 总结
第 7 章 Web 程序的模板
7.1 用模板保持代码的整洁性
模板实战
7.2 Embedded JavaScript 的模板
7.2.1 创建模板
7.2.2 将 EJS 集成到你的程序中
7.2.3 在客户端程序中使用 EJS
7.3 使用 Mustache 模板语言与 Hogan
7.3.1 创建模板
7.3.2 Mustache 标签
7.3.3 微调 Hogan
7.4 用 Pug 做模板
7.4.1 Pug 基础知识
7.4.2 Pug 模板中的逻辑
7.4.3 组织 Pug 模板
7.5 总结
第 8 章 存储数据
8.1 关系型数据库
8.2 PostgreSQL
8.2.1 安装及配置
8.2.2 创建数据库
8.2.3 从 Node 中连接 Postgres
8.2.4 定义表
8.2.5 插入数据
8.2.6 更新数据
8.2.7 查询数据
8.3 Knex
8.3.1 查询构建器
8.3.2 用 Knex 实现连接和查询
8.3.3 切换数据库
8.3.4 注意抽象漏洞
8.4 MySQL 和 PostgreSQL
8.5 ACID 保证
8.5.1 原子性:无论成败,事务必须整体执行
8.5.2 一致性:始终确保约束条件
8.5.3 隔离性:并发事务不会相互干扰
8.5.4 耐用性:事务是永久性的
8.6 NoSQL
8.7 分布式数据库
8.8 MongoDB
8.8.1 安装和配置
8.8.2 连接 MongoDB
8.8.3 插入文档
8.8.4 查询
8.8.5 使用 MongoDB 标识
8.8.6 使用复制集
8.8.7 了解写关注
8.9 键/值存储
8.10 Redis
8.10.1 安装和配置
8.10.2 初始化
8.10.3 处理键/值对
8.10.4 处理键
8.10.5 编码与数据类型
8.10.6 使用散列表
8.10.7 使用列表
8.10.8 使用集合
8.10.9 用频道实现发布/订阅功能
8.10.10 提升性能
8.11 嵌入式数据库
8.12 LevelDB
8.12.1 LevelUP 与 LevelDOWN
8.12.2 安装
8.12.3 API 概览
8.12.4 初始化
8.12.5 键/值编码
8.12.6 键/值对的读写
8.12.7 可插拔的后台
8.12.8 模块化数据库
8.13 昂贵的序列化和反序列化
8.14 浏览器内存储
8.14.1 Web 存储:localStorage 和 sessionStorage
8.14.2 值的读写
8.14.3 localForage
8.14.4 读和写
8.15 存储托管
简单存储服务
8.16 选哪个数据库
8.17 总结
第 9 章 测试 Node 程序
9.1 单元测试
9.1.1 assert 模块
9.1.2 Mocha
9.1.3 Vows
9.1.4 Chai
9.1.5 Should.js
9.1.6 Sinon.JS 的探测器和存根
9.2 功能测试
Selenium
9.3 处理失败的测试
9.3.1 获取更详细的日志
9.3.2 更好的栈跟踪
9.4 总结
第 10 章 Node 程序的部署及运维
10.1 安置 Node 程序
10.1.1 平台即服务
10.1.2 服务器
10.1.3 容器
10.2 部署的基础知识
10.2.1 从 Git 库部署
10.2.2 保证 Node 不掉线
10.3 在线时长和性能的最大化
10.3.1 用 Upstart 保证在线时长
10.3.2 集群 API:充分利用多核处理器
10.3.3 静态文件及代理
10.4 总结
第三部分 超越 Web 开发
第 11 章 编写命令行程序
11.1 了解惯例和理念
11.2 parse-json
11.3 使用命令行参数
11.3.1 解析命令行参数
11.3.2 验证参数
11.3.3 将 stdin 作为文件传递
11.4 用 npm 分享命令行工具
11.5 用管道连接脚本
11.5.1 将数据通过管道传给 parse-json
11.5.2 处理错误和退出码
11.5.3 在 Node 中使用管道
11.5.4 管道与命令的执行顺序
11.6 解释真正的脚本
11.7 总结
第 12 章 用 Electron 征服桌面
12.1 认识 Electron
12.1.1 Electron 的技术栈
12.1.2 界面设计
12.2 创建一个 Electron 程序
12.3 搭建完整的桌面端程序
12.3.1 引导 React 与 Babel
12.3.2 安装依赖项
12.3.3 设置 Webpack
12.4 React 程序
12.4.1 定义 Request 组件
12.4.2 定义 Response 组件
12.4.3 React 组件之间的通信
12.5 构建与分发
12.5.1 用 Electron 打包器构建程序
12.5.2 打包
12.6 总结
附录 A 安装 Node
附录 B 自动化的网络抓取
附录 C Connect 的官方中间件
术语表
下载地址:https://www.wenjiangs.com/wp-content/uploads/2024/01/1zXxZ8oZVDdJPlCF.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Node.js 实战 PDF 文档
下一篇: 白帽子讲 Web 安全 PDF 文档
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论