logo资料库

nodejs 实战.pdf

第1页 / 共360页
第2页 / 共360页
第3页 / 共360页
第4页 / 共360页
第5页 / 共360页
第6页 / 共360页
第7页 / 共360页
第8页 / 共360页
资料共360页,剩余部分请下载后查看
Node.js实战
数字版权声明
作译者简介
扉页
版权
版 权 声 明
前 言
致 谢
关 于 本 书
关于封面图片
目录
第一部分 Node基础
第1章 欢迎进入Node.js 世界
1.1 构建于JavaScript之上
1.2 异步和事件触发:浏览器
1.3 异步和事件触发:服务器
1.4 DIRT程序
1.5 默认DIRT
1.5.1 简单的异步程序
1.5.2 Hello World HTTP服务器
1.5.3 流数据
1.6 小结
第2章 构建有多个房间的聊天室程序
2.1 程序概览
2.2 程序需求及初始设置
2.2.1 提供HTTP和WebSocket服务
2.2.2 创建程序的文件结构
2.2.3 指明依赖项
2.2.4 安装依赖项
2.3 提供HTML、CSS和客户端JavaScript的服务
2.3.1 创建静态文件服务器
2.3.2 添加HTML和CSS文件
2.4 用Socket.IO处理与聊天相关的消息
2.4.1 设置Socket.IO服务器
2.4.2 处理程序场景及事件
2.5 在程序的用户界面上使用客户端JavaScript
2.5.1 将消息和昵称/房间变更请求传给服务器
2.5.2 在用户界面中显示消息及可用房间
2.6 小结
第3章 Node 编程基础
3.1 Node功能的组织及重用
3.1.1 创建模块
3.1.2 用module.exports微调模块的创建
3.1.3 用node_modules重用模块
3.1.4 注意事项
3.2 异步编程技术
3.2.1 用回调处理一次性事件
3.2.2 用事件发射器处理重复性事件
3.2.3 异步开发的难题
3.3 异步逻辑的顺序化
3.3.1 什么时候使用串行流程控制
3.3.2 实现串行化流程控制
3.3.3 实现并行化流程控制
3.3.4 利用社区里的工具
3.4 小结
第二部分 用Node开发Web程序
第4章 构建Node Web 程序
4.1 HTTP服务器的基础知识
4.1.1 Node如何向开发者呈现HTTP请求
4.1.2 一个用“Hello World”做响应的HTTP服务器
4.1.3 读取请求头及设定响应头
4.1.4 设定HTTP响应的状态码
4.2 构建RESTful Web服务
4.2.1 用POST请求创建资源
4.2.2 用GET请求获取资源
4.2.3 用DELETE请求移除资源
4.3 提供静态文件服务
4.3.1 创建一个静态文件服务器
4.3.2 处理服务器错误
4.3.3 用fs.stat()实现先发制人的错误处理
4.4 从表单中接受用户输入
4.4.1 处理提交的表单域
4.4.2 用formidable处理上传的文件
4.4.3 计算上传进度
4.5 用HTTPS加强程序的安全性
4.6 小结
第5章 存储Node 程序中的数据
5.1 无服务器的数据存储
5.1.1 内存存储
5.1.2 基于文件的存储
5.2 关系型数据库管理系统
5.2.1 MySQL
5.2.2 PostgreSQL
5.3 NoSQL数据库
5.3.1 Redis
5.3.2 MongoDB
5.3.3 Mongoose
5.4 小结
第6章 Connect
6.1 搭建一个Connect程序
6.2 Connect的工作机制
6.2.1 做日志的中间件
6.2.2 响应“hello world”的中间件
6.3 为什么中间件的顺序很重要
6.3.1 中间件什么时候不调用next()
6.3.2 用中间件的顺序执行认证
6.4 挂载中间件和服务器
6.4.1 认证中间件
6.4.2 显示管理面板的中间件
6.5 创建可配置中间件
6.5.1 创建可配置的logger中间件组件
6.5.2 构建路由中间件组件
6.5.3 构建一个重写URL的中间件组件
6.6 使用错误处理中间件
6.6.1 Connect的默认错误处理器
6.6.2 自行处理程序错误
6.6.3 使用多个错误处理中间件组件
6.7 小结
第7章 Connect 自带的中间件
7.1 解析cookie、请求主体和查询字符串的中间件
7.1.1 cookieParser():解析HTTP cookie
7.1.2 bodyParser():解析请求主体
7.1.3 limit():请求主体的限制
7.1.4 query():查询字符串解析
7.2 实现Web程序核心功能的中间件
7.2.1 logger():记录请求
7.2.2 favicon():提供favicon
7.2.3 methodOverride():伪造HTTP方法
7.2.4 vhost():虚拟主机
7.2.5 session():会话管理
7.3 处理Web程序安全的中间件
7.3.1 basicAuth():HTTP基本认证
7.3.2 csrf():跨站请求伪造防护
7.3.3 errorHandler():开发错误处理
7.4 提供静态文件服务的中间件
7.4.1 static():静态文件服务
7.4.2 compress():压缩静态文件
7.4.3 directory():目录列表
7.5 小结
第8章 Express
8.1 生成程序骨架
8.1.1 安装Express的可执行程序
8.1.2 生成程序
8.1.3 探索程序
8.2 配置Express和你的程序
基于环境的配置
8.3 渲染视图
8.3.1 视图系统配置
8.3.2 视图查找
8.3.3 把数据输出到视图中
8.4 处理表单和文件上传
8.4.1 实现照片模型
8.4.2 创建照片上传表单
8.4.3 显示上传照片列表
8.5 创建资源下载
8.5.1 创建照片下载路由
8.5.2 实现照片下载路由
8.6 小结
第9章 Express 进阶
9.1 认证用户
9.1.1 保存和加载用户
9.1.2 注册新用户
9.1.3 已注册用户登录
9.1.4 用户加载中间件
9.2 先进的路由技术
9.2.1 校验用户内容提交
9.2.2 特定路由中间件
9.2.3 实现分页
9.3 创建一个公开的REST API
9.3.1 设计API
9.3.2 添加基本的认证
9.3.3 实现路由
9.3.4 启用内容协商
9.4 错误处理
9.4.1 处理404错误
9.4.2 处理错误
9.5 小结
第10章 测试Node程序
10.1 单元测试
10.1.1 assert模块
10.1.2 Nodeunit
10.1.3 Mocha
10.1.4 Vows
10.1.5 should.js
10.2 验收测试
10.2.1 Tobi
10.2.2 Soda
10.3 小结
第11章 Web 程序模板
11.1 用模板保持代码的整洁性
模板实战
11.2 嵌入JavaScript的模板
11.2.1 创建模板
11.2.2 用EJS过滤器处理模板数据
11.2.3 将EJS集成到你的程序中
11.2.4 在客户端程序中使用EJS
11.3 使用Mustache模板语言与Hogan
11.3.1 创建模板
11.3.2 Mustache标签
11.3.3 微调Hogan
11.4 用Jade做模板
11.4.1 Jade基础知识
11.4.2 Jade模板中的逻辑
11.4.3 组织Jade模板
11.5 小结
第三部分 在Node中更进一步
第12章 部署Node 程序并维持正常 运行时间
12.1 安置Node程序
12.1.1 专用的和虚拟私有服务器
12.1.2 云主机
12.2 部署的基础知识
12.2.1 从Git存储库部署
12.2.2 让Node保持运行
12.3 让正常运行时间和性能达到最优
12.3.1 用Upstart维护正常运行时间
12.3.2 集群API:利用多核的优势
12.3.3 静态文件及代理
12.4 小结
第13章 超越Web 服务器
13.1 Socket.IO
13.1.1 创建一个最小的Socket.IO程序
13.1.2 用Socket.IO触发页面和CSS的重新加载
13.1.3 Socket.IO的其他用法
13.2 深入TCP/IP网络
13.2.1 处理缓冲区和二进制数据
13.2.2 创建TCP服务器
13.2.3 创建TCP客户端
13.3 跟操作系统交互的工具
13.3.1 单例的全局process对象
13.3.2 使用文件系统模块
13.3.3 繁衍外部进程
13.4 开发命令行工具
13.4.1 解析命令行参数
13.4.2 处理stdin和stdout
13.4.3 添加彩色的输出
13.5 小结
第14章 Node 生态系统
14.1 给Node 开发人员的在线资源
14.1.1 Node 和模块的参考资料
14.1.2 Google 群组
14.1.3 IRC
14.1.4 GitHub 问题列表
14.2 GitHub
14.2.1 GitHub 入门
14.2.2 添加一个项目到GitHub 中
14.2.3 用GitHub 协作
14.3 为npm 库做贡献
14.3.1 准备包
14.3.2 编写包规范
14.3.3 测试和发布包
14.4 小结
附录A
安装Node和社区附加组件
A.1 在OS X上的安装
用Homebrew安装
A.2 在Windows上的安装
A.3 在Linux上的安装
A.3.1 在Ubuntu上安装的前提
A.3.2 在CentOS上安装的前提
A.4 编译Node
A.5 使用Node包管理器
A.5.1 寻找包
A.5.2 安装包
A.5.3 探索文档和包代码
附录B
调试Node
B.1 用JSHint分析代码
B.2 输出调试信息
B.2.1 用console模块调试
B.2.2 用debug模块管理调试输出
B.3 Node内置的调试器
B.3.1 调试器导览
B.3.2 调试器中状态的检查及处理
B.4 Node检查器
B.4.1 Node检查器入门
B.4.2 Node检查器导航
B.4.3 在Node检查器中浏览状态
附录C
Express的扩展及配置
C.1 扩展Express
C.1.1 注册模板引擎
C.1.2 consolidate.js模板
C.1.3 Express的扩展及框架
C.2 高级配置
C.2.1 操作JSON响应
C.2.2 JSON响应格式
C.2.3 信任反向代理头域
关注图灵教育
封底
欢迎加入图灵社区
图灵社区会员 quqingtao 专享 尊重版权
数字版权声明 图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使 用,未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产 权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。
图灵社区会员 quqingtao 专享 尊重版权
图灵社区会员 quqingtao 专享 尊重版权
内 容 提 要 本书是 Node.js 的实战教程,涵盖了为开发产品级 Node 应用程序所需要的一切特性、技巧以及相关理念。 从搭建 Node 开发环境,到一些简单的演示程序,到开发复杂应用程序所必不可少的异步编程。书中还介绍 了 HTTP API 的应用技巧等。 本书适合 Web 开发人员阅读。 ◆ ◆ ◆ 著    [美] Mike Cantelon Marc Harter T. J. Holowaychuk        Nathan Rajlich 译    吴海星 责任编辑 李 瑛 责任印制 焦志炜 人民邮电出版社出版发行  北京市丰台区成寿寺路11号 邮编 100164  电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京      印刷 开本:800×1000 1/16 印张:22.25 字数:525千字 印数:1 — 3 500册 2014年 5 月第 1 版 2014年 5 月北京第 1 次印刷 著作权合同登记号 图字:01-2013-8986号 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 定价:69.00元 反盗版热线:(010)81055315 广告经营许可证:京崇工商广字第 0021 号 图灵社区会员 quqingtao 专享 尊重版权
错误!文档中没有指定样式的文字。 47 版 权 声 明 Original English language edition, entitled Node.js in Action by Mike Cantelon, Marc Harter, T.J. Holowaychuk, Nathan Rajlich, published by Manning Publications. 178 South Hill Drive, Westampton, NJ 08060 USA. Copyright © 2014 by Manning Publications. Simplified Chinese-language edition copyright © 2014 by Posts & Telecom Press. All rights reserved. 本书中文简体字版由Manning Publications授权人民邮电出版社独家出版。未经出版者书面许 可,不得以任何方式复制或抄袭本书内容。 版权所有,侵权必究。 1 2 3 4 5 6 7 8 9 10 11 图灵社区会员 quqingtao 专享 尊重版权
4 前 言 序 写一本关于Node.js的书是一项很有挑战性的任务。这是一个相对新的平台,最近才刚刚趋于 稳定。Node.js的核心一直在进化,并且社区中由用户创建的模块数量也呈现出了爆炸性的增长, 其发展速度没人能跟得上。社区也仍然在找寻自己的声音。写书阐释这样一个还在不断发展的主 题,唯一的办法是理解Node的本质,以及它为什么这样成功。这些Node.js老兵们就是这么做的。 Mike Cantelon在Node社区中极其活跃,用Node做实验,谈论Node。关于Node适合做什么——可 能更重要的是不适合做什么,他有着极深的洞见。T. J. Holowaychuk是最多产的Node.js模块作者 之一,其中包括大规模流行的Web框架Express。Nathan Rajlich,也就是著名的TooTallNate,已 经做了一段时间的Node.js核心代码的提交者,他也是平台发展到当前这种成熟状态的积极推动 力量。 本书吸取了他们丰富的经验,带着你从最初的Node.js安装,到创建应用、调试程序和部署产 品,一路走下去。你将了解到是什么让Node如此有趣,并从中窥见各位作者的理解,这样Node 项目将来的发展方向也变得更好理解了。最重要的是,本书内容由浅入深、循序渐进,每一阶段 都以之前所学的内容为基础。 Node是一个正在升起的火箭,作者们成功地将你带上了这一旅程。请将本书作为跳板,从这 里出发,开拓你自己的视野吧。 Isaac Z. Schlueter Node包管理器(NPM)作者 Node.js项目负责人 图灵社区会员 quqingtao 专享 尊重版权
2 前 言 前 言 2011年初,Manning出版社找到我们,说想出一本关于Node.js的书,那时Node社区的状态和 现在很不一样,圈子还很小。尽管已经有很多人表现出了对它的兴趣,但Node仍然被主流开发社 区看做是一项有风险的技术,还没有人写过关于Node的书。尽管写书的想法令人生畏,但我们还 是决定去大胆一试。 鉴于我们各自的开发方向不同,我们想不仅要把这本书的重点全放在Node的Web程序开发 上,还要探索其他有趣的潜在用途。我们想给Web开发人员指出一条道路,用现有技术将异步开 发带入服务器这一Node愿景。 这本书我们写了两年多,在写作过程中,这门技术已经进化了,所以我们也相应地做了更新。 它现在变得更大了,很多成熟的公司也开始拥抱Node。 对于想做些不同尝试的Web程序开发人员,现在是学习Node的好时机,希望这本书可以帮到 你,让你能迅速学会这门技术,并在其中找到乐趣。 图灵社区会员 quqingtao 专享 尊重版权
分享到:
收藏