Node.js是一种方兴未艾的新技术,诞生于2009年。经过两年的快速变化,Node.js生态圈已经逐渐走向稳定。Node.js采用了以往类似语言和框架中非常罕见的技术,总结为关键词就是:非阻塞式控制流、异步I/O、单线程消息循环。不少开发者在入门时总要经历一个痛苦的思维转变过程,给学习带来巨大的障碍。 而本书的目的就是帮助读者扫清这些障碍,学会使用Node.js进行Web后端开发,同时掌握事件驱动的异步式编程风格,以便进一步利用Node.js的高级特性。
目 录
第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 + Nginx6
1.5 JavaScript 简史6
1.5.1 Netscape 与 LiveScript7
1.5.2 Java 与 Javascript7
1.5.3 微软的加入—— JScript8
1.5.4 标准化—— ECMAScript8
1.5.5 浏览器兼容性问题9
1.5.6 引擎效率革命和 JavaScript 的未来9
1.6 CommonJS10
1.6.1 服务端 JavaScript 的重生10
1.6.2 CommonJS 规范与实现11
1.7 参考资料12
第2章 安装和配置Node.js13
2.1 安装前的准备14
2.2 快速安装14
2.2.1 Microsoft Windows系统上安装Node.js14
2.2.2 Linux 发行版上安装Node.js16
2.2.3 Mac OS X上安装Node.js16
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 World24
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.js48
3.4.4 使用 node-inspector 调试Node.js54
3.5 参考资料55
第4章 Node.js核心模块57
4.1 全局对象58
4.1.1 全局对象与全局变量58
4.1.2 process58
4.1.3 console60
4.2 常用工具 util61
4.2.1 util.inherits61
4.2.2 util.inspect62
4.3 事件驱动 events63
4.3.1 事件发射器64
4.3.2 error 事件65
4.3.3 继承 EventEmitter65
4.4 文件系统 fs65
4.4.1 fs.readFile66
4.4.2 fs.readFileSync67
4.4.3 fs.open67
4.4.4 fs.read68
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 安装 Express84
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 使用Bootstrap104
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
《图形数据可视化》内容简介:本书主要探讨理解图形数据、建立图形数据结构以及创建有意义的可视化的方法。书中通过精彩的实例分析
《中国哲学通史(明代卷)》内容简介:宋明理学是中国传统哲学发展的高峰,但在宋明之间,既存在着思想谱系的一致性,又存在着“得
《QQ营销》内容简介:本书对互联网营销中普遍采用的矩阵式营销加以归纳和总结,给出了矩阵式营销的概念和一般方法,并使用矩阵式营
本书面向所有对机器学习与数据挖掘的实践及竞赛感兴趣的读者,从零开始,以Python编程语言为基础,在不涉及大量数学模型与复杂编
《朱子哲学思想的发展与完成》内容简介:本书剖析了集宋代理学之大成的朱熹的学思内涵,比较集中地体现了刘述先先生关于宋明儒学研
《《史记》导论》内容简介:《史记》作为“二十四史”之首,奠定了中国史学的基本格局。在史学、文学等诸多方面,都深刻地影响了后
事实上,只要你会HTML、CSS和JavaScript技术,那么你就已经掌握了开发iPhone应用程序的技能。《构建iPhone企业级应用:基于HTML,C
Iftheusualpatchworkofwebdevelopmenttoolsandlanguagesjustisntcuttingitforyou,youn...
《平面设计师职场调研手册》是一本探讨平面设计的调研方法和实际应用的初级读本。在较大的范围内概括常用调研策略和方法,向你介
《“爱无痕”学科融合德育主题教育活动指导手册》内容简介:为实施爱家人、爱伙伴、爱学校、爱祖国、爱地球的“五爱”教育,上海市
游戏开发中的物理学-第二版-(影印版) 本书特色 如果你打算丰富游戏中现实意义上的物理体验,《游戏开发中的物理学(影印版第2版)》这本经典书籍的扩展版本...
《信息论:基础理论与应用》(第2版)系统地论述了香农信息论基本理论及某些应用问题,基本覆盖了信息论的各个方面的内容。内容包括
本书用丰富的图示,从最小二乘法出发,对基于最小二乘法实现的各种机器学习算法进行了详细的介绍。第Ⅰ部分介绍了机器学习领域的
《RubyProgramming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了
《全彩电工从入门到精通(微视频版)》内容简介:本书以“全彩+图解+视频”的方式介绍电工技术,主要内容有电工基础与安全用电、电
ARM嵌入式开发实例-基于STM32的系统设计 本书特色 本书以stm32f103xx芯片为例,对车载arm嵌入式系统进行了详细的介绍。全书共8章,按内容讲解的...
Youdontneedprogrammingexperiencetoaddinteractiveandvisualeffectstoyourwebpageswi...
网络操作系统Linux管理与配置 本书特色 陈志涛主编的《网络操作系统Linux管理与配置》是21世纪高职高专IT类专业系列教材之一。教材内容贯彻“工学结合”指...
《祖传点穴解穴疗伤秘诀》内容简介:本书主要有五大板块内容,包括点穴基本功、穴位、经络详解、点穴操作神技、解穴神技以及疗伤秘
《传播研究的心理学传统》内容简介:本书是一项基础性的学术史研究,旨在揭示传播学学术传统的心理学源流。以传播学和心理学的学科