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
《用“芯”探核:龙芯派开发实战》内容简介:这是一本带领读者快速熟悉、掌握龙芯派开发的专著。本书基于龙芯派二代开发板,首先由
前言鸣谢简介1.用闪电书写——塞穆尔·莫尔斯与电磁电报创造发明家通讯的需要电的选择莫尔斯的第一个电报其他科学家:惠斯登电报
《版本源流與正史校勘》内容简介:本书汇集的研究主要是依托中华书局“点校本《二十四史》及《清史稿》修订工程”而展开的。这些文
五笔字根查记手册 内容简介 许多人觉得五笔字型难学难记,难就难在五笔字型的编码与拆分。初学五笔字型的人都有这样的感觉,碰到一个汉字,往往**个字根能够准确地拆分...
《八万里路云和月》内容简介:全书共分为三篇。上篇“通榆‘触网’之路”,作者以半自传的形式回顾了通榆电商品牌成长历程。从零开
《HTTP/2 in Action(中文版)》内容简介:本书以易于理解、方便上手的方式,使用贴近用户的实例来解释HTTP/2协议。本书首先介绍为
《陶行知教育箴言》内容简介:《陶行知教育箴言》从陶行知先生诸多著作中精选出最经典的内容,将其平生教育教学研究与实践的精髓汇
图形用户界面是当前人机交互的主要模式。往往会有这样错误的看法,就是认为软件界面是程序员等这样一些计算机专家的事,当前人们
PHPChina官方出品,Discuz!创始人戴志康、UCHome创始人李国德、ThinkPHP创始人刘晨、PHPCMS项目负责人王参加等联袂推荐。本书是
罗振宇、丹尼尔•平克、赛斯•高汀、丹•艾瑞里、谢家华、阿里安娜•赫芬顿强烈推荐!美国亚马逊2013年年度商业&投资类图书榜前20名!
聞名全球的「frogdesign」(青蛙設計)如何在經濟大衰退之際,還能締造破記錄營收。‧高科技設計超級巨星哈特姆.艾斯林格(青蛙設計
《幼儿深度学习的理论与实践探索研究(实践篇)》内容简介:本书是旨在对幼儿深度学习进行学术研究的探索性著作。幼儿深度学习是指
《Laravel框架关键技术解析》内容简介:《Laravel框架关键技术解析》以Laravel 5.1版本为基础,从框架技术角度介绍Laravel构建的原
《一念放下,自在洒脱:李叔同的禅悟人生课》内容简介:★人生没有什么放不下 ★弘一法师人生智慧的精粹集锦 ★前半生拿得起,后半
ASP.NET程序设计教程 本书特色 《ASP.NET程序设计教程》共分四部分,由12章组成,**部分是ASP.NET基础部分。本部分讲述了ASP.NET基础知...
《C#本质论(第3版)》是一部好评如潮的语言参考书,作者用一种非常合理的方式来组织《C#本质论(第3版)》的内容,由浅人深地介绍了
《智能经济:用数字经济学思维理解世界》内容简介:本书通过对信息技术革命的技术思想历史的探索,全面分析了包括计算主义世界观、
《大盘时代:中国泛地产革命》内容简介:1999年,一条从广州南直通番禺的华南快速干线将普通的岭南小镇南村,变成了中国房地产史上
计算机操作系统原理与应用 : 高等学校计算机专业教材精选·计算机原理 本书特色 《计算机操作系统原理与应用》是我们参考了国内外有关OS的论著和技术资料,并结合多...
《谁说大象不能跳舞?——IBM董事长郭士纳自传》内容简介:IBM公司,长期以来执计算机世界之牛耳,被视为美国科技实力的象征和国家