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
《SaaS创业之路》内容简介:这是一本面向SaaS赛道相关从业者的书,内容不只是聚焦在产品、运营、经营等某个具体模块,还从更体系化
Inmodernwebapplicationstherearelotsofcaseswhenweneedtodocomplicatedcalculationsi...
Pro/ENGINEER Wildfire3.0工程图制作1CD 内容简介 本书在循序渐进的教学中,通过精选的案例讲解了Pro/ENGINEER Wildfir...
《微信力量》内容简介:微信俨然已进化为一种万能的连接器,拥有连接一切的能力,彰显出强大的连接力,无处不在,无所不能。本书将
《信息产业部3G移动通信培训指定教材•3G移动通信系统概述》是为了帮助读者了解和掌握第三代移动通信系统三大主流技术的相关基础知
图解HTTP 本书特色 《图解http》对互联网基盘——http协议进行了全面系统的介绍。作者由http协议的发展历史娓娓道来,严谨细致地剖析了http协议的结...
《素茶书》内容简介:茶是中国人的生活之需,也是不可或缺的精神饮料。它平易亲和又清雅高远,与文人的性情十分贴合。"大家茶坊"丛
StanleyLippman职业是提供关于C++和面向对象的训练、咨询、设计和指导。他在成为一名独立咨询顾问之前,曾经是迪士尼动画公司的首
掌握需求过程-(第2版) 本书特色 本书论述了软件开发中的重要课题—如何得到正确需求,书中用一个接一个的步骤、一个接一个的模板、一个接一个的例子,向读者展示了经...
《跟李锐学Excel数据分析》内容简介:本书是作者20年实战经验的总结、提炼,汇集了职场人在实际工作中常见的需求。书中结合具体场景
2025年,你会住在哪里?以怎样的方式与这个世界保持联系?看见吗?这个未来并不遥远,它是可以触摸的。这是一个以建筑设计的方式
《2021年法律硕士(非法学)联考考试大纲配套练习》内容简介:全书各章节的基本结构为:大纲要点、考试重点、配套练习和配套练习答
《心理学与微表情微反应》内容简介:微表情,就是持续时间很短的面部表情,大概只有1/25秒,它一闪即逝,很难伪装,很容易暴露一个
《出世还是入世》内容简介:本书作者何善蒙老师用通俗易懂的语言,讲解以孔孟老庄等十四位中国古代哲人的思想,展现中国先哲的人生
基于贝叶斯网络的结构系统可靠性评估方法 内容简介 本书是在作者近几年的研究成果上著作而成的,着眼于VA族元素形成的二维材料体系,采用基于密度泛函理论的性原理研究...
《数据分析之图算法:基于Spark和Neo4j》内容简介:图分析可以揭示复杂系统和大规模网络的运作机制,图算法为构建智能应用程序提供
TheinternationalsuccessstoryofAntwerpfashionTheSix(WalterVanBeirendonck,AnnDemeu...
ThedefinitivehistoryofDARPA,theDefenseAdvancedResearchProjectAgency,fromtheautho...
Printedentirelyincolor,withhelpfulfiguresandsyntaxcoloringtomakecodesamplesappea...
内容提要:本书通过互联网行业与社会生活中的案例内容,向读者介绍了一些互联网技术和新型网站的发展,揭示了社交网站兴起的因素