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
《体验营销(修订版)》:商家赢利新法宝,销售的革命!今天,运用体验营销开展商业竞争已成为商家赢利的法宝。体验营销是个新概念
CAD室内设计施工图常用图块.5 金牌家装实例 本书特色 本图集汇集了住宅室内装饰设计施工图各类实例,是从大量的工程实例中精选出来,经过加工整理,使其典型化,综...
《雨鼓》内容简介:15世纪,奥斯曼帝国出兵围攻阿尔巴尼亚的城堡,帕夏率领千军万马驻扎城脚,千奇百怪的攻城方式轮番上演,百转千
网络思想政治教育心理研究 内容简介 网络思想政治教育心理研究是思想政治教育心理学研究的重要内容,旨在通过网络时代思想政治教育心理方面有关问题的深入探讨,拓展思想...
《R的极客理想——高级开发篇》内容简介:R的极客理想”系列图书以作者多年开发经验为素材,系统地梳理了R语言的知识。在《R的极客
《爱自己是一辈子的修行》内容简介:现代女性聪明、能干、出色、体贴、要求高、效率高,却活得越来越精神紧张。身心不协调,令自己
《企业级容器云架构开发指南》内容简介:本书由慧与大学组织,由慧与(中国)有限公司容器云项目组的人员完成,书籍内容的蓝本为慧
PythonforSoftwareDesignisaconciseintroductiontosoftwaredesignusingthePythonprogr...
《编排设计》由余青青编著。编排设计是现代艺术设计的重要组成部分,也是视觉传达的重要手段。它既是一门具有相对独立性的艺术,
《曾国藩那套本事》内容简介:本书是一部汇集曾国藩做人做事智慧的成功学全书,将其做人做事的思想精华有机结合,揭示了曾国藩成为
MATLAB 在数学建模中的应用-(第2版) 本书特色 《matlab在数学建模中的应用》(第2版)一书是《matlab在数学建模中的应用》一书的第2版...
《Scala编程(第3版)》内容简介:本书由直接参与Scala开发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具
《星星离我们有多远》内容简介:《星星离我们有多远》是一本深入浅出的天文学科普著作,为我们系统展示了历代天文学家如何兢兢业业
《鸽群中的猫》内容简介:著名女子学院“芳草地”迎来了新的学期。新入学的女孩里有一位谢斯塔公主,她的表哥刚刚在一场政变中被害
《徐肖冰传》内容简介:在摄影机后面观察历史的人,他用镜头定格20世纪中国的烽火硝烟、恩怨情仇,用影像鲜活了一段中国现代革命史
《睹物》内容简介:本书将文明的传承形式——历史学、文学和视觉艺术作为研究对象,通过对大家耳熟能详的艺术文学作品进行耳目一新
《大数据可视化》内容简介:本书是针对当前大数据应用、可视化分析研究和应用的新形势,专门为大数据专业本科生编写的大数据可视化
本书系统而深入地介绍了现代数字信号处理的基础和一些广泛应用的算法。全书共10章,分为四个部分。第一部分包括第1章~第4章,介
《静中开花》内容简介:本书是贾平凹2022年新编散文集,作者亲绘封面和16幅插画,精选56篇经典作品。书中写情感,说家乡,聊花草,
《SQL反模式》是一本广受好评的SQL图书。它介绍了如何避免在SQL的使用和开发中陷入一些常见却经常被忽略的误区。它通过讲述各种具