第1章Node.js简介 1
1.1 Node.js是什么 2
1.2 Node.js能做什么 3
1.3异步式I/O与事件驱动 4
1.4 Node.js的性能 5
1.4.1 Node.js架构简介 5
1.4.2 Node.js与PHP+Nginx 6
1.5 JavaScript简史 6
1.5.1 Netscape与LiveScript 7
1.5.2 Java与Javascript 7
1.5.3微软的加入——JScript 8
1.5.4标准化——ECMAScript 8
1.5.5浏览器兼容性问题 9
1.5.6引擎效率革命和JavaScript的未来 9
1.6 CommonJS 10
1.6.1服务端JavaScript的重生 10
1.6.2 CommonJS规范与实现 11
1.7参考资料 12
第2章 安装和配置Node.js 13
2.1安装前的准备 14
2.2快速安装 14
2.2.1 Microsoft Windows系统上安装Node.js 14
2.2.2 Linux发行版上安装Node.js 16
2.2.3 Mac OS X上安装Node.js 16
2.3编译源代码 17
2.3.1在POSIX系统中编译 17
2.3.2在Windows系统中编译 18
2.4安装Node包管理器 18
2.5安装多版本管理器 19
2.6参考资料 21
第3章Node.js快速入门 23
3.1开始用Node.js编程 24
3.1.1 Hello World 24
3.1.2 Node.js命令行工具 25
3.1.3建立HTTP服务器 26
3.2异步式I/O与事件式编程 29
3.2.1阻塞与线程 29
3.2.2回调函数 31
3.2.3事件 33
3.3模块和包 34
3.3.1什么是模块 35
3.3.2创建及加载模块 35
3.3.3创建包 38
3.3.4 Node.js包管理器 41
3.4调试 45
3.4.1命令行调试 45
3.4.2远程调试 47
3.4.3使用Eclipse调试Node.js 48
3.4.4使用node-inspector调试Node.js 54
3.5参考资料 55
第4章Node.js核心模块 57
4.1全局对象 58
4.1.1全局对象与全局变量 58
4.1.2 process 58
4.1.3 console 60
4.2常用工具util 61
4.2.1 util.inherits 61
4.2.2 util.inspect 62
4.3事件驱动events 63
4.3.1事件发射器 64
4.3.2 error事件 65
4.3.3继承EventEmitter 65
4.4文件系统fs 65
4.4.1 fs.readFile 66
4.4.2 fs.readFileSync 67
4.4.3 fs.open 67
4.4.4 fs.read 68
4.5.HTTP服务器与客户端 70
4.5.1 HTTP服务器 70
4.5.2 HTTP客户端 74
4.6参考资料 77
第5章 使用Node.js进行Web开发 79
5.1准备工作 80
5.1.1使用http模块 82
5.1.2 Express框架 83
5.2快速开始 84
5.2.1安装Express 84
5.2.2建立工程 85
5.2.3启动服务器 86
5.2.4工程的结构 87
5.3路由控制 89
5.3.1工作原理 89
5.3.2创建路由规则 92
5.3.3路径匹配 93
5.3.4 REST风格的路由规则 94
5.3.5控制权转移 95
5.4模板引擎 97
5.4.1什么是模板引擎 97
5.4.2使用模板引擎 98
5.4.3页面布局 99
5.4.4片段视图 100
5.4.5视图助手 100
5.5建立微博网站 102
5.5.1功能分析 102
5.5.2路由规划 102
5.5.3界面设计 103
5.5.4使用Bootstrap 104
5.6用户注册和登录 107
5.6.1访问数据库 107
5.6.2会话支持 110
5.6.3注册和登入 111
5.6.4页面权限控制 120
5.7发表微博 123
5.7.1微博模型 123
5.7.2发表微博 125
5.7.3用户页面 126
5.7.4首页 127
5.7.5下一步 129
5.8参考资料 129
第6章Node.js进阶话题 131
6.1模块加载机制 132
6.1.1模块的类型 132
6.1.2按路径加载模块 132
6.1.3通过查找node modules目录加载模块 133
6.1.4加载缓存 134
6.1.5加载顺序 134
6.2控制流 135
6.2.1循环的陷阱 135
6.2.2解决控制流难题 137
6.3 Node.js应用部署 138
6.3.1日志功能 138
6.3.2使用cluster模块 140
6.3.3启动脚本 142
6.3.4共享80端口 143
6.4 Node.js不是银弹 144
6.5参考资料 146
附录A JavaScript的高级特性 147
附录B Node.js编程规范 167
索引 175