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
关东升智捷课堂创始人,国内知名iOS技术作家,iOS技术顾问,高级培训讲师,移动开发专家。担任51CTO社区iOS技术顾问,精通iOS、A
书是讲述下一代编程语言Erlang的权威著作,主要涵盖顺序型编程、异常处理、编译和运行代码、并发编程、并发编程中的错误处理、分
《让高管团队更高效》内容简介:企业的命运取决于它的CEO?《让高管团队更高效》的作者们并不这么认为。相反,他们认为,在当今这个
《数字信号处理学习指导与题解》是高两全等编著的《数字信号处理:原理、实现及应用》的配套用书。主要内容包括:(1)各章重点、难
《数字图像处理》主要介绍了数字图像处理的基本概念、常用方法、实用技术和典型应用。全书分三大部分共9章,第一部分是数字图像处
《完美主义扼杀效率》内容简介:工作的目标是成果,而不是完美! 33个完美主义思维误区! 日本上班族人手一本!做出成果只需抓住20
《OpenCL异构计算》讲解了OpenCL和如何为复杂的异构系统(多核处理器、GPU和APU)进行并行编程。OpenCL是为支持多平台设计的,受
《最新日本设计模板:版面设计》着重对海报、DH、POP、书籍等印刷品的设计和运用进行解说,因为“版面设计”存在于人们生活的方方
Thefaultline--thatdangerous,unstableseamintheeconomywherepowerfulinnovationsands...
《从0到1写方案》内容简介:基于全网10万+学员订阅的爆款课程《如何成为年入百万的方案高手》《15堂零基础系统方案课》内容来进一步
《Rootkit和Bootkit:现代恶意软件逆向分析和下一代威胁》内容简介:本书囊括灵活的技巧、操作系统架构观察以及攻击者和防御者创新
本书采用问答的形式,为CSS使用过程中一些有价值的经典问题提供了精彩的实践解决方案。本书内容包括文本样式、CSS图像、导航、表
日本設計大師原研哉為其設計生涯的諸多作品,以淺顯易懂的精鍊語言,做全面性解說。近年來的新作,如「HAPTIC」展、北京奧運象徵
谣言几乎与人类历史同龄。随着互联网的兴起和普及,谣言变得无处不在。在言论自由的民主社会,从来就不乏谣言的传播渠道。危机时
妙笔生花-专业的Word商务文档制作与排版-(含光盘1张) 本书特色 学会word 不难,学好word 也不难!《妙笔生花——专业的word商务文档制作与排版(...
Python金融大数据分析 本书特色 python凭借其简单、易读、可扩展性以及拥有巨大而活跃的科学计算社区,在需要分析、处理大量数据的金融行业得到了广泛而迅速...
《ES6标准入门(第2版)》内容简介:ES6(又名ES2105)是JavaScript语言的新标准,2015年6月正式发布后,得到了迅速推广,是目前业
本书从系统级设计和系统集成芯片(SOC)设计技术的角度介绍可编程专用集成电路(ASIC)器件的结构和可编程资源,用FPGA和CPLD进行数字
《婴幼儿童身心保健》内容简介:儿童处于快速生长发育阶段,各器官系统功能尚不成熟,容易受到外界伤害并罹患各种疾病。因此,家长
《道德形而上学(注释本)》内容简介:由中国人民大学哲学院教授李秋零主编、主译的《康德著作全集》(9卷本),以普鲁士王家科学院