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
《精通CSS+DIV网页样式与布局》从零开始,细致介绍CSS的语法规则,透彻讲解CSS应用于各种网页元素的步骤和技巧深入剖析,CSS+DIV
《百万在线》内容简介:本书首部分:学以致用(第1-4章)。这部分介绍了Skynet引擎的使用方法及注意事项,以《球球大作战》的案例贯
Astep-by-stepguidetobuildingPHPwebsitesandapplicationsusingtheSmartytemplatingen...
纠错码是一门新的差错控制技术,目前已广泛应用于各种通信系统和计算机系统中。王新梅和肖国镇编著的《21世纪高等学校通信类系列
《活着,就要无声炸裂》内容简介:这是一本让年轻人小宇宙爆发的力量之书。人气博主南顾用自己的亲身经历写下颠沛流离的青春、肆意
《宋本群经义疏的编校与刊印》内容简介:所谓“群经义疏”,是指唐代孔颖达、宋代邢昺等人为儒家经书所撰“正义”和“疏”;宋本义
本书结合了作者十余年的教学经验,融合了诺贝尔奖得主及其他学者数十年的研究成果,用深入浅出的方法帮助你发现自己决策中的误区
在线阅读本书《CrossingtheChasm:MarketingandSellingDisrupti》:Mooreprovidesaninvaluablese...
Clojure是一种基于Java虚拟机的动态编程语言。如果你要转移到函数式编程,或是要应对来自并发的挑战,那么,Clojure是你的首选语
《近代中国军政关系与“军阀”话语研究(增订本)》内容简介:军阀话语有趣、有用,富于学术研究价值。百余年来,中外相关研究不绝
《翻转世界》内容简介:《翻转世界》的作者尼克·比尔顿身兼《纽约时报》研究与发展实验室研究员与专栏作家等职,通过不断尝试各种
《从维熙自选集》内容简介:从维熙的作品,无论小说还是散文,都演绎着中国历史以及作者个人的深切感悟。本书精选了他优秀且极具代
《智能教育:让孩子站在人工智能的肩膀上适应未来》内容简介:人工智能等新技术正在悄然改变着教育行业的方方面面,如何应对人工智
Gooduserinterfacedesignisntjustaboutaestheticsorusingthelatesttechnology.Designe...
《HTML+CSS+JavaScript网页制作案例教程》内容简介:Web标准的最大特点是采用HTML+CSS+JavaScript将网页内容、外观样式及动态效...
网络大事记篇-中国互联网20年 本书特色 20 年,中国互联网从无到有,从小到大,从大到强,放在中国历史长河上看,堪称是开天辟地的时代传奇。互联网作为人类文明的...
jQuerysimplifiesbuildingrich,interactivewebfrontends.GettingstartedwiththisJavaS...
《学者的本分》内容简介:本文集由三部分组成——传统士人的气节、近代变革的文化坚持、现代学术制度的确立。全书的旨趣是想借此反
《神经网络模糊推理智能信息融合及其工程应用》由鄂加强、左红艳、罗周全著。神经网络和模糊推理之间的相似性和互补性是其进行融
《涂抹与速度》内容简介:九位书法相关专业的博士从历史现象出发,对书法中的种种迷信和陈陈相因的观点进行了崭新的解说,给人启迪