服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。
本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀著作。通过学习本书,读者将深入异步编程、数据存储、输出模板、读写文件系统,掌握创建TCP/IP服务器和命令行工具等非HTTP程序的技术。本书同样非常适合熟悉Rails、Django或PHP开发的读者阅读学习。
本书主要内容:
Node.js及其扩展的安装配置;
全面理解异步编程和事件循环;
学会开发微博、聊天和游戏等热门应用。
第一部分 Node基础
第1章 欢迎进入Node.js世界2
1.1 构建于JavaScript之上3
1.2 异步和事件触发:浏览器4
1.3 异步和事件触发:服务器5
1.4 DIRT程序6
1.5 默认DIRT8
1.5.1 简单的异步程序9
1.5.2 Hello World HTTP服务器10
1.5.3 流数据10
1.6 小结11
第2章 构建有多个房间的聊天室程序12
2.1 程序概览12
2.2 程序需求及初始设置15
2.2.1 提供HTTP和WebSocket服务15
2.2.2 创建程序的文件结构16
2.2.3 指明依赖项16
2.2.4 安装依赖项17
2.3 提供HTML、CSS和客户端JavaScript的服务18
2.3.1 创建静态文件服务器19
2.3.2 添加HTML和CSS文件21
2.4 用Socket.IO处理与聊天相关的消息23
2.4.1 设置Socket.IO服务器24
2.4.2 处理程序场景及事件25
2.5 在程序的用户界面上使用客户端JavaScript29
2.5.1 将消息和昵称/房间变更请求传给服务器29
2.5.2 在用户界面中显示消息及可用房间30
2.6 小结34
第3章 Node编程基础35
3.1 Node功能的组织及重用36
3.1.1 创建模块37
3.1.2 用module.exports微调模块的创建39
3.1.3 用node_modules重用模块40
3.1.4 注意事项41
3.2 异步编程技术42
3.2.1 用回调处理一次性事件43
3.2.2 用事件发射器处理重复性事件46
3.2.3 异步开发的难题53
3.3 异步逻辑的顺序化54
3.3.1 什么时候使用串行流程控制55
3.3.2 实现串行化流程控制56
3.3.3 实现并行化流程控制58
3.3.4 利用社区里的工具60
3.4 小结61
第二部分 用Node开发Web程序
第4章 构建Node Web程序64
4.1 HTTP服务器的基础知识64
4.1.1 Node如何向开发者呈现HTTP请求65
4.1.2 一个用“Hello World”做响应的HTTP服务器67
4.1.3 读取请求头及设定响应头67
4.1.4 设定HTTP响应的状态码67
4.2 构建RESTful Web服务68
4.2.1 用POST请求创建资源69
4.2.2 用GET请求获取资源71
4.2.3 用DELETE请求移除资源72
4.3 提供静态文件服务73
4.3.1 创建一个静态文件服务器73
4.3.2 处理服务器错误77
4.3.3 用fs.stat()实现先发制人的错误处理77
4.4 从表单中接受用户输入78
4.4.1 处理提交的表单域78
4.4.2 用formidable处理上传的文件81
4.4.3 计算上传进度84
4.5 用HTTPS加强程序的安全性85
4.6 小结86
第5章 存储Node程序中的数据87
5.1 无服务器的数据存储88
5.1.1 内存存储88
5.1.2 基于文件的存储88
5.2 关系型数据库管理系统91
5.2.1 MySQL91
5.2.2 PostgreSQL99
5.3 NoSQL数据库100
5.3.1 Redis101
5.3.2 MongoDB105
5.3.3 Mongoose107
5.4 小结109
第6章 Connect110
6.1 搭建一个Connect程序111
6.2 Connect的工作机制112
6.2.1 做日志的中间件112
6.2.2 响应“hello world”的中间件113
6.3 为什么中间件的顺序很重要114
6.3.1 中间件什么时候不调用next()114
6.3.2 用中间件的顺序执行认证115
6.4 挂载中间件和服务器115
6.4.1 认证中间件116
6.4.2 显示管理面板的中间件117
6.5 创建可配置中间件118
6.5.1 创建可配置的logger中间件组件119
6.5.2 构建路由中间件组件120
6.5.3 构建一个重写URL的中间件组件122
6.6 使用错误处理中间件123
6.6.1 Connect的默认错误处理器124
6.6.2 自行处理程序错误124
6.6.3 使用多个错误处理中间件组件125
6.7 小结129
第7章 Connect自带的中间件130
7.1 解析cookie、请求主体和查询字符串的中间件131
7.1.1 cookieParser():解析HTTP cookie131
7.1.2 bodyParser():解析请求主体134
7.1.3 limit():请求主体的限制135
7.1.4 query():查询字符串解析137
7.2 实现Web程序核心功能的中间件138
7.2.1 logger():记录请求138
7.2.2 favicon():提供favicon140
7.2.3 methodOverride():伪造HTTP方法141
7.2.4 vhost():虚拟主机143
7.2.5 session():会话管理144
7.3 处理Web程序安全的中间件148
7.3.1 basicAuth():HTTP基本认证148
7.3.2 csrf():跨站请求伪造防护150
7.3.3 errorHandler():开发错误处理150
7.4 提供静态文件服务的中间件152
7.4.1 static():静态文件服务152
7.4.2 compress():压缩静态文件154
7.4.3 directory():目录列表156
7.5 小结157
第8章 Express158
8.1 生成程序骨架160
8.1.1 安装Express的可执行程序161
8.1.2 生成程序162
8.1.3 探索程序162
8.2 配置Express和你的程序164
8.3 渲染视图166
8.3.1 视图系统配置167
8.3.2 视图查找169
8.3.3 把数据输出到视图中171
8.4 处理表单和文件上传175
8.4.1 实现照片模型175
8.4.2 创建照片上传表单176
8.4.3 显示上传照片列表178
8.5 创建资源下载179
8.5.1 创建照片下载路由179
8.5.2 实现照片下载路由180
8.6 小结182
第9章 Express进阶183
9.1 认证用户184
9.1.1 保存和加载用户184
9.1.2 注册新用户189
9.1.3 已注册用户登录194
9.1.4 用户加载中间件197
9.2 先进的路由技术199
9.2.1 校验用户内容提交199
9.2.2 特定路由中间件202
9.2.3 实现分页205
9.3 创建一个公开的REST API208
9.3.1 设计API208
9.3.2 添加基本的认证209
9.3.3 实现路由209
9.3.4 启用内容协商212
9.4 错误处理214
9.4.1 处理404错误215
9.4.2 处理错误217
9.5 小结220
第10章 测试Node程序221
10.1 单元测试222
10.1.1 assert模块222
10.1.2 Nodeunit225
10.1.3 Mocha227
10.1.4 Vows232
10.1.5 should.js234
10.2 验收测试235
10.2.1 Tobi236
10.2.2 Soda237
10.3 小结239
第11章 Web程序模板240
11.1 用模板保持代码的整洁性240
11.2 嵌入JavaScript的模板244
11.2.1 创建模板245
11.2.2 用EJS过滤器处理模板数据246
11.2.3 将EJS集成到你的程序中249
11.2.4 在客户端程序中使用EJS250
11.3 使用Mustache模板语言与Hogan251
11.3.1 创建模板251
11.3.2 Mustache标签252
11.3.3 微调Hogan254
11.4 用Jade做模板255
11.4.1 Jade基础知识256
11.4.2 Jade模板中的逻辑258
11.4.3 组织Jade模板260
11.5 小结264
第三部分 在Node中更进一步
第12章 部署Node程序并维持正常运行时间266
12.1 安置Node程序266
12.1.1 专用的和虚拟私有服务器267
12.1.2 云主机268
12.2 部署的基础知识269
12.2.1 从Git存储库部署270
12.2.2 让Node保持运行270
12.3 让正常运行时间和性能达到最优271
12.3.1 用Upstart维护正常运行时间272
12.3.2 集群API:利用多核的优势273
12.3.3 静态文件及代理275
12.4 小结277
第13章 超越Web服务器278
13.1 Socket.IO278
13.1.1 创建一个最小的Socket.IO程序279
13.1.2 用Socket.IO触发页面和CSS的重新加载281
13.1.3 Socket.IO的其他用法283
13.2 深入TCP/IP网络284
13.2.1 处理缓冲区和二进制数据284
13.2.2 创建TCP服务器286
13.2.3 创建TCP客户端289
13.3 跟操作系统交互的工具290
13.3.1 单例的全局process对象291
13.3.2 使用文件系统模块293
13.3.3 繁衍外部进程296
13.4 开发命令行工具301
13.4.1 解析命令行参数301
13.4.2 处理stdin和stdout302
13.4.3 添加彩色的输出304
13.5 小结306
第14章 Node生态系统307
14.1 给Node开发人员的在线资源308
14.1.1 Node和模块的参考资料308
14.1.2 Google群组309
14.1.3 IRC309
14.1.4 GitHub问题列表310
14.2 GitHub310
14.2.1 GitHub入门311
14.2.2 添加一个项目到GitHub中312
14.2.3 用GitHub协作314
14.3 为npm库做贡献316
14.3.1 准备包317
14.3.2 编写包规范317
14.3.3 测试和发布包318
14.4 小结320
附录A 安装Node和社区附加组件321
附录B 调试Node329
附录C Express的扩展及配置336
JenniferHudsonJenniferHudsonisanauthorinthefieldsofcontemporarydesignandarchitec...
非线性随机时滞神经网络-稳定性分析与脉冲镇定 本书特色 本专著的内容是研究非线性*时滞神经网络系统的稳定与脉冲镇定.这些系统包括脉冲*泛函系统,*递归时滞神经网...
Almosteveryanimalwillatsometimeorotherbecomethehomeofaparasite.Notonlyareparasit...
《少年读三国》内容简介:本书是一套写给青少年读的三国历史,以时间为顺序,从黄巾起义讲到三国归晋。作者以通俗的笔触,将晦涩的
《非正常军师联盟》内容简介:古人很潮系列书籍。继《唐朝有嘻哈》《宋朝好声音》《魏晋有美男》《奇葩王者说》《古人教你学吐槽》
VisualBasic通用范例开发金典(含光盘) 本书特色 本书系统全面地介绍了Visual Basic软件——Microsoft Visual Basic 6...
《VerilogHDL高级数字设计》结构清晰,内容组织合理、适合于计算机机、电子等相关专业本科高年级学生或研究生课程,同时也通用于
结构弹塑性分析程序OpenSEES原理与实例 本书特色opensees是一个开源的弹塑性分析程序,它有很多未商业化仍在研究阶段的算法、单元及材料本构。opens...
ThisthoroughlyupdatededitionofTheSchemeProgrammingLanguageprovidesanintroduction...
《人气女王的沟通智慧》内容简介:有些女人,不开口的时候堪称美女,可是一旦说话却会让人对其印象大打折扣。而另一些女人,她们看
在线广告:互联网广告系统的架构及算法 本书特色 在线广告是一个多学科交融的领域,本书力求系统地讲解在线广告的架构和算法,让读者对在线广告有一个整体的认识。全书共...
《5分钟生物课》内容简介:你相信鱼在水中也憋气吗?你知道植物用什么“语言”进行交流吗?果子狸是SARS的“元凶”吗?植物真能防辐
《西线无战事》内容简介:第一次世界大战开始后不久,保罗和同学们怀着英雄主义的理想,志愿报名参军。经过短暂的训练后,他们被送
SmashingCSStakesyouwellbeyondthebasics,coveringnotonlythefinerpointsoflayoutande...
作者介绍:ChasEmerick是软件公司Snowtideinformatics的创始人。自2008年以来,致力于Clojure语言本身以及一些开源项目的开发;...
《中国至2050年信息科技发展路线图》根据国家战略需求和科学技术发展的宏观规律,对信息科学技术未来40年的发展趋势和我国应选择
当今学术界对线上交流、用户创建内容以及共享媒体等内容依然采取忽视的态度,甚至禁止在媒体以及学校中传播和教授,但数字文化的
《再造农业》内容简介:近年来,我国规模农业发展速度惊人。这一过程到底是市场自发作用的结果,还是政府干预的结果?皖南河镇的实
《现代编译原理:C语言描述》全面讲述了现代编译器的结构、编译算法和实现方法,是Andreww.Apple的“虎书”——ModernCompilerIm
《多核应用编程实战》是一本全面实用的多核应用编程指南,旨在介绍如何编写功能正确、性能优越且适合扩展为在多个CPU核心的系统运