Node.js开发指南
出版信息
郭家寶(BYVoid) / 人民邮电出版社 / 2012-7 / 45.00元
内容简介
Node.js是一种方兴未艾的新技术,诞生于2009年。经过两年的快速变化,Node.js生态圈已经逐渐走向稳定。Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是帮助读者扫清这些障碍,学会使用Node.js进行Web后端开发,同时掌握事件驱动的异步式编程风格,以便进一步利用Node.js的高级特性。
作者简介
郭家寶(BYVoid),清华大学计算机系2010级本科生,曾获得信息学奥林匹克竞赛(NOI)金牌。他从中学开始涉足开源开发,参与过「汉典网」等许多Web项目的前后端设计开发,同时是Linux输入法ibus-pinyin的作者。他从2009年Node.js诞生之始,就一直在关注它的发展,有过许多用Node.js建立网站的经验,活跃于CNode社区。
目录
目 录
第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