第一部分 基础篇 2
第1章 入门 2
1.1 安装Node.js 2
1.1.1 在Windows上安装 2
1.1.2 在Mac上安装 4
1.1.3 在Linux上安装 6
1.2 "Hello World!" 8
1.2.1 Node Shell 8
1.2.2 编辑并运行JavaScript文件 9
1.3 第一个Web服务器 9
1.4 调试Nodejs程序 11
1.5 保持最新及获取帮助 13
1.6 小结 14
第2章 进一步了解JavaScript 15
2.1 数据类型 15
2.1.1 类型基础 15
2.1.2 常量 16
2.1.3 number类型 16
2.1.4 boolean类型 18
2.1.5 string类型 18
2.1.6 object类型 21
2.1.7 array类型 23
2.2 类型比较和转换 26
2.3 函数 27
2.3.1 基本概念 28
2.3.2 函数作用域 30
2.4 语言结构 30
2.5 类、原型和继承 31
2.6 错误和异常 34
2.7 几个重要的Node.js全局对象 34
2.7.1 global对象 34
2.7.2 console对象 35
2.7.3 process对象 35
2.8 小结 35
第3章 异步编程 36
3.1 传统编程方式 36
3.2 Node.js的编程方式 37
3.3 错误处理和异步函数 39
3.4 我是谁——如何维护本体 42
3.5 保持优雅——学会放弃控制权 44
3.6 同步函数调用 46
3.7 小结 46
第二部分 提高篇 48
第4章 编写简单应用 48
4.1 第一个JSON服务器 48
4.2 Node模式:异步循环 52
4.3 小戏法:处理更多的请求 54
4.4 请求和响应对象的更多细节 59
4.5 提高灵活性:GET参数 61
4.6 修改内容:POST数据 64
4.6.1 接收JSON POST数据 65
4.6.2 接收表单POST数据 68
4.7 小结 69
第5章 模块化 70
5.1 编写简单模块 70
5.2 npm:Node包管理器 72
5.3 使用模块 74
5.3.1 查找模块 74
5.3.2 模块缓存 74
5.3.3 循环 75
5.4 编写模块 75
5.4.1 创建模块 76
5.4.2 使用模块进行开发 81
5.4.3 发布模块 82
5.5 应当内置的通用模块 83
5.5.1 常见问题 83
5.5.2 解决方案 84
5.6 小结 89
第6章 扩展Web服务器 91
6.1 使用Stream处理静态内容 91
6.1.1 读取文件 91
6.1.2 在Web服务器中使用Buffer处理静态文件 93
6.1.3 不仅仅支持HTML 95
6.2 在客户端组装内容:模板 98
6.2.1 HTML骨架页面 99
6.2.2 处理静态内容 100
6.2.3 修改URL解析机制 101
6.2.4 JavaScript加载器 103
6.2.5 使用Mustache模板化 103
6.2.6 首页Mustache模板 105
6.2.7 整合应用 106
6.3 小结 108
第三部分 实战篇 110
第7章 使用express构建Web应用 110
7.1 安装express 110
7.2 express中的路由和分层 112
7.2.1 路由基础 112
7.2.2 更新相册应用路由 114
7.3 REST API设计和模块 116
7.3.1 API设计 116
7.3.2 模块 117
7.4 中间件功能 119
7.4.1 基本用法 120
7.4.2 配置 120
7.4.3 中间件执行顺序 121
7.4.4 静态文件处理 122
7.4.5 POST数据、cookie和session 124
7.4.6 对PUT和DELETE更友好的浏览器支持 126
7.4.7 压缩输出 126
7.4.8 HTTP基本身份验证 127
7.4.9 错误处理 128
7.5 小结 129
第8章 数据库Ⅰ:NoSQL(MongoDB) 130
8.1 设置MongoDB 130
8.1.1 安装MongoDB 130
8.1.2 在Node.js中使用MongoDB 131
8.2 MongoDB数据结构 132
8.2.1 全是JavaScript的世界 132
8.2.2 数据类型 132
8.3 理解基本操作 133
8.3.1 连接并创建数据库 133
8.3.2 创建集合 134
8.3.3 向集合中插入文档 135
8.3.4 更新文档内容 135
8.3.5 删除集合中的文档 136
8.3.6 查询集合 136
8.4 更新相册应用 138
8.4.1 编写基本操作 139
8.4.2 修改JSON服务器的API 144
8.4.3 更新处理程序 144
8.4.4 为应用添加新页面 149
8.5 应用结构回顾 153
8.6 小结 153
第9章 数据库Ⅱ:SQL(MySQL) 154
9.1 准备工作 154
9.1.1 安装MySQL 154
9.1.2 从npm添加mysql模块 155
9.2 创建数据库模式 155
9.3 基本数据库操作 156
9.3.1 连接数据库 156
9.3.2 添加查询 156
9.4 添加应用身份验证 157
9.4.1 更新API以支持用户 157
9.4.2 检测核心用户数据操作 157
9.4.3 更新express应用 161
9.4.4 创建用户处理程序 162
9.4.5 创建登录和注册页面 164
9.5 资源池 167
9.5.1 入门 168
9.5.2 处理连接 168
9.6 验证API 169
9.7 小结 171
第四部分 进阶篇 174
第10章 部署和开发 174
10.1 部署 174
10.1.1 级别:基础 175
10.1.2 级别:Ninja 176
10.2 多处理器部署:使用代理 178
10.3 虚拟主机 183
10.3.1 内置支持 183
10.3.2 代理服务器支持 185
10.4 使用HTTPS/SSL保障项目安全 186
10.4.1 生成测试证书 186
10.4.2 内置支持 186
10.4.3 代理服务器支持 187
10.5 多平台开发 188
10.5.1 位置和配置文件 188
10.5.2 处理路径差异 189
10.6 小结 190
第11章 命令行编程 191
11.1 运行命令行脚本 191
11.1.1 UNIX和Mac 191
11.1.2 Windows 192
11.1.3 脚本和参数 193
11.2 同步处理文件 194
11.2.1 基本文件API 194
11.2.2 文件和状态 196
11.2.3 目录内容 197
11.3 用户交互:标准输入和输出 197
11.3.1 基本缓冲输入和输出 197
11.3.2 无缓冲输入 198
11.3.3 Readline模块 200
11.4 进程处理 204
11.4.1 简单进程创建 204
11.4.2 使用Spawn创建进程 205
11.5 小结 206
第12章 测试 207
12.1 测试框架选择 207
12.2 编写测试用例 208
12.2.1 简单功能测试 209
12.2.2 异步功能测试 211
12.3 RESTful API测试 212
12.4 小结 214