目 录
第1章 Node.js基础知识 1
1.1 概述 1
1.1.1 Node.js是什么 1
1.1.2 Node.js带来了什么 1
1.2 Node.js配置开发 3
1.2.1 Windows配置 3
1.2.2 Linux配置 5
1.2.3 Hello World 6
1.2.4 常见问题 7
1.3 异步编程 8
1.3.1 同步调用和异步调用 8
1.3.2 回调和异步调用 11
1.3.3 获取异步函数的执行结果 12
1.4 本章实践 12
1.5 本章小结 14
第2章 模块和NPM 16
2.1 什么是模块 16
2.1.1 模块的概念 16
2.1.2 Node.js如何处理模块 16
2.1.3 Node.js实现Web解析DNS 18
2.1.4 Node.js重构DNS解析网站 24
2.1.5 exports和module.exports 28
2.2 NPM简介 30
2.2.1 NPM和配置 30
2.2.2 Express框架 31
2.2.3 jade模板 33
2.2.4 forever模块 36
2.2.5 socket.io模块 38
2.2.6 request模块 40
2.2.7 Formidable模块 43
2.2.8 NPM模块开发指南 45
2.3 Node.js设计模式 47
2.3.1 模块与类 47
2.3.2 Node.js中的继承 49
2.3.3 单例模式 55
2.3.4 适配器模式 57
2.3.5 装饰模式 59
2.3.6 工厂模式 61
2.4 本章实践 63
2.5 本章小结 75
第3章 Node.js的Web应用 77
3.1 HTTP服务器 77
3.1.1 简单的HTTP服务器 77
3.1.2 路由处理 81
3.1.3 GET和POST 84
3.1.4 GET方法实例 84
3.1.5 POST方法实例 87
3.1.6 HTTP和HTTPS模块介绍 90
3.2 Node.js静态资源管理 91
3.2.1 为什么需要静态资源管理 92
3.2.2 Node.js实现简单静态资源管理 93
3.2.3 静态资源库设计 96
3.2.4 静态文件的缓存控制 99
3.3 文件处理 104
3.3.1 File System模块介绍 104
3.3.2 图片和文件上传 108
3.3.3 jade模板实现图片上传展示功能 112
3.3.4 上传图片存在的问题 116
3.3.5 文件读写 117
3.4 Cookie和Session 122
3.4.1 Cookie和Session 122
3.4.2 Session模块实现 123
3.4.3 Session模块的应用 126
3.5 Crypto模块加密 127
3.5.1 Crypto介绍 127
3.5.2 Web数据密码的安全 131
3.5.3 简单加密模块设计 132
3.6 Node.js+Nginx 136
3.6.1 Nginx概述 137
3.6.2 Nginx的配置安装 137
3.6.3 如何构建 142
3.7 文字直播实例 145
3.7.1 系统分析 145
3.7.2 重要模块介绍 147
3.8 扩展阅读 155
3.9 本章实践 159
3.10 本章小结 173
第4章 Node.js高级编程 175
4.1 构建UDP服务器 175
4.1.1 UDP 模块概述 175
4.1.2 UDP Server构建 176
4.2 UDP服务器应用 179
4.2.1 应用分析介绍 180
4.2.2 UDP Server端(图片处理服务器)实现 181
4.2.3 UDP Client端(Web Server) 184
4.2.4 Jade页面实现 186
4.2.5 应用体验 187
4.3 Node.js与PHP合作 189
4.3.1 UDP方式 189
4.3.2 脚本执行 191
4.3.3 HTTP方式 191
4.3.4 三种方式的比较 192
4.4 本章实践 193
4.5 本章小结 196
第5章 深入Node.js 199
5.1 Node.js的相关实现机制 199
5.2 Node.js原生扩展 202
5.2.1 Node.js扩展开发基础V8 202
5.2.2 Node.js插件开发介绍 204
5.3 Node.js异步扩展开发与应用 205
5.4 本章实践 212
5.5 本章小结 214
第6章 Node.js编码习惯 216
6.1 Node.js规范 216
6.1.1 变量和函数命名规范 216
6.1.2 模块编写规范 219
6.1.3 注释 220
6.2 Node.js异步编程规范 221
6.2.1 Node.js的异步实现 221
6.2.2 异步函数的调用 224
6.2.3 Node.js异步回调深度 226
6.2.4 解决异步编程带来的麻烦 227
6.3 异常逻辑的处理 231
6.3.1 require模块对象不存在异常 231
6.3.2 对象中不存在方法或者属性时的异常 233
6.3.3 异步执行的for循环异常 234
6.3.4 利用异常处理办法优化路由 236
6.3.5 异常情况汇总 240
6.4 本章实践 241
6.5 本章小结 241
第7章 Node.js与数据库 243
7.1 两种数据库介绍 243
7.1.1 MySQL介绍 243
7.1.2 MongoDB模块介绍 247
7.2 Node.js与MySQL 250
7.2.1 MySQL安装配置应用 250
7.2.2 MySQL数据库接口设计 251
7.2.3 数据库连接 252
7.2.4 数据库插入数据 254
7.2.5 查询一条数据记录 256
7.2.6 修改数据库记录 258
7.2.7 删除数据库记录 259
7.2.8 数据条件查询 260
7.3 Node.js与MongoDB 262
7.3.1 MongoDB的安装以及工具介绍 263
7.3.2 MongOD的启动运行方法 264
7.3.3 MongoDB的启动运行 266
7.3.4 MongoDB数据库接口设计 268
7.3.5 数据插入 272
7.3.6 数据修改 274
7.3.7 查询一条数据 276
7.3.8 删除数据 278
7.3.9 查询数据 279
7.4 MySQL与MongoDB性能 281
7.4.1 测试工具及测试逻辑 282
7.4.2 MySQL性能测试代码 282
7.4.3 MongoDB性能测试代码 283
7.4.4 性能测试数据分析 283
7.5 本章实践 285
7.6 本章小结 289
第8章 MyWeb框架介绍 290
8.1 MyWeb框架介绍 290
8.1.1 MyWeb框架涉及的应用 290
8.1.2 MyWeb框架应用模块 291
8.2 MyWeb源码架构 292
8.2.1 框架MVC设计图 292
8.2.2 框架文件结构 293
8.2.3 扩展阅读之更快地了解新项目 294
8.3 框架源码分析 295
8.3.1 框架入口文件模块 295
8.3.2 路由处理模块 297
8.3.3 Model层基类 299
8.3.4 Controller层基类 301
8.4 本章实践 302
8.5 本章小结 302
第9章 框架应用MyChat 304
9.1 编码前的准备 304
9.1.1 应用分析 305
9.1.2 应用模块 305
9.1.3 功能模块设计 307
9.2 系统的编码开发 309
9.2.1 Model层 309
9.2.2 Controller层 311
9.2.3 View层 316
9.3 项目总结 318
9.3.1 forever启动运行项目 318
9.3.2 系统应用体验 320
9.3.3 系统开发总结 323
9.4 扩展阅读之MyWeb 2.0的介绍 323
9.5 本章实践 325
9.6 本章小结 325
第10章 Node.js实例应用 326
10.1 实时聊天对话 326
10.1.1 系统设计 326
10.1.2 系统的模块设计 327
10.1.3 系统编码实现 328
10.2 联网中国象棋游戏 332
10.2.1 系统设计 333
10.2.2 系统的模块设计 334
10.2.3 系统编码实现 334
10.2.4 系统体验 337
10.3 本章小结 339
第11章 Node.js实用工具 340
11.1 日志模块工具 340
11.1.1 日志模块介绍 340
11.1.2 日志模块实现 341
11.1.3 日志模块应用 345
11.2 配置文件读取模块 347
11.2.1 配置文件解析模块介绍 347
11.2.2 配置文件解析模块实现 348
11.3 curl模块 352
11.3.1 curl模块介绍 352
11.3.2 curl模块实现 353
11.3.3 curl模块应用 356
11.4 crontab模块 357
11.4.1 crontab模块介绍 358
11.4.2 crontab模块设计实现 358
11.4.3 crontab模块应用 361
11.5 forever运行脚本 362
11.5.1 forever运行脚本介绍 362
11.5.2 forever运行脚本实现 363
11.5.3 forever运行脚本应用 366
11.6 xml模块的应用 367
11.6.1 xml解析模块介绍 368
11.6.2 xml模块设计实现 369
11.6.3 xml模块应用 371
11.7 邮件发送模块应用 374
11.7.1 邮件模块介绍 374
11.7.2 邮件模块设计实现 374
11.7.3 邮件模块应用 376
11.8 本章小结 377
??
??
??
??
Node.js开发实战详解
目录
·X·
·IX·