Node.js实战

8.288 评价豆瓣读书
阅读
¥29.99
  • 导言
  • 目录
  • 作品信息

服务器端JavaScript?没错。Node.js是一个JavaScript服务器,支持可伸缩的高性能Web应用。借助异步I/O,这个服务器可以同时做很多事情,能满足聊天、游戏和实时统计等应用的需求。并且既然是JavaScript,那你就可以全栈使用一种语言。

本书向读者展示了如何构建产品级应用,对关键概念的介绍清晰明了,贴近实际的例子,涵盖从安装到部署的各个环节,是一部讲解与实践并重的优秀著作。通过学习本书,读者将深入异步编程、数据存储、输出模板、读写文件系统,掌握创建TCP/IP服务器和命令行工具等非HTTP程序的技术。本书同样非常适合熟悉Rails、Django或PHP开发的读者阅读学习。

作者简介:

Mike Cantelon

Node.js核心框架贡献者、Node社区活跃分子、资深培训师和演讲人。

Marc Harter

Node.js核心框架贡献者。

T.J. Holowaychuk

参与开发了很多Node.js模块,包括流行的Express框架。

Nathan Rajlich

大名鼎鼎的TooTallNate,Node.js核心代码提交者。

译者简介:

吴海星

2001年毕业于南京理工大学。编程数载代码不过几十万,翻译几年码字不过几百万。项目不过十几个,带队不到五十人。年过而立,惴惴不安,愈加发奋,孜孜求学,愿凭绵薄之力,贡献于IT社区。

  1. 前言
  2. 致谢
  3. MIKE CANTELON的致谢
  4. MARC HARTER的致谢
  5. NATHAN RAJLICH的致谢
  6. 关于本书
  7. 路线图
  8. 代码约定及下载
  9. 作者在线
  10. 关于封面图片
  11. 第一部分 Node基础
  12. 第1章  欢迎进入Node.js世界
  13. 1.1 构建于JavaScript之上
  14. 1.2 异步和事件触发:浏览器
  15. 1.3 异步和事件触发:服务器
  16. 1.4 DIRT程序
  17. 1.5 默认DIRT
  18. 1.5.1  简单的异步程序
  19. 1.5.2 Hello World HTTP服务器
  20. 1.5.3 流数据
  21. 1.6  小结
  22. 第2章 构建有多个房间的聊天室程序
  23. 2.1 程序概览
  24. 2.2 程序需求及初始设置
  25. 2.2.1 提供HTTP和WebSocket服务
  26. 2.2.2 创建程序的文件结构
  27. 2.2.3 指明依赖项
  28. 2.2.4 安装依赖项
  29. 2.3 提供HTML、CSS和客户端JavaScript的服务
  30. 2.3.1 创建静态文件服务器
  31. 2.3.2 添加HTML和CSS文件
  32. 2.4 用Socket.IO处理与聊天相关的消息
  33. 2.4.1 设置Socket.IO服务器
  34. 2.4.2 处理程序场景及事件
  35. 2.5 在程序的用户界面上使用客户端JavaScript
  36. 2.5.1 将消息和昵称/房间变更请求传给服务器
  37. 2.5.2 在用户界面中显示消息及可用房间
  38. 2.6 小结
  39. 第3章 Node编程基础
  40. 3.1 Node功能的组织及重用
  41. 3.1.1 创建模块
  42. 3.1.2 用module.exports微调模块的创建
  43. 3.1.3 用node_modules重用模块
  44. 3.1.4 注意事项
  45. 3.2 异步编程技术
  46. 3.2.1 用回调处理一次性事件
  47. 3.2.2 用事件发射器处理重复性事件
  48. 3.2.3 异步开发的难题
  49. 3.3 异步逻辑的顺序化
  50. 3.3.1 什么时候使用串行流程控制
  51. 3.3.2 实现串行化流程控制
  52. 3.3.3 实现并行化流程控制
  53. 3.3.4 利用社区里的工具
  54. 3.4 小结
  55. 第二部分 用Node开发Web程序
  56. 第4章 构建Node Web程序
  57. 4.1 HTTP服务器的基础知识
  58. 4.1.1 Node如何向开发者呈现HTTP请求
  59. 4.1.2 一个用“Hello World”做响应的HTTP服务器
  60. 4.1.3 读取请求头及设定响应头
  61. 4.1.4 设定HTTP响应的状态码
  62. 4.2 构建RESTful Web服务
  63. 4.2.1 用POST请求创建资源
  64. 4.2.2 用GET请求获取资源
  65. 4.2.3 用DELETE请求移除资源
  66. 4.3 提供静态文件服务
  67. 4.3.1 创建一个静态文件服务器
  68. 4.3.2 处理服务器错误
  69. 4.3.3 用fs.stat()实现先发制人的错误处理
  70. 4.4 从表单中接受用户输入
  71. 4.4.1 处理提交表单域
  72. 4.4.2 用formidable处理上传的文件
  73. 4.4.3 计算上传进度
  74. 4.5 用HTTPS加强程序的安全性
  75. 4.6 小结
  76. 第5章 存储Node程序中的数据
  77. 5.1 无服务器的数据存储
  78. 5.1.1 内存存储
  79. 5.1.2 基于文件的存储
  80. 5.2 关系型数据库管理系统
  81. 5.2.1 MySQL
  82. 5.2.2 PostgreSQL
  83. 5.3 NoSQL数据库
  84. 5.3.1 Redis
  85. 5.3.2 MongoDB
  86. 5.3.3 Mongoose
  87. 5.4 小结
  88. 第6章 Connect
  89. 6.1 搭建一个Connect程序
  90. 6.2 Connect的工作机制
  91. 6.2.1 做日志的中间件
  92. 6.2.2 响应"hello world"的中间件
  93. 6.3 为什么中间件的顺序很重要
  94. 6.3.1 中间件什么时候不调用next()
  95. 6.3.2 用中间件的顺序执行认证
  96. 6.4 挂载中间件和服务器
  97. 6.4.1 认证中间件
  98. 6.4.2 显示管理面板的中间件
  99. 6.5 创建可配置中间件
  100. 6.5.1 创建可配置的logger中间件组件
  101. 6.5.2 构建路由中间件组件
  102. 6.5.3 构建一个重写URL的中间件组件
  103. 6.6 使用错误处理中间件
  104. 6.6.1 Connect的默认错误处理器
  105. 6.6.2 自行处理程序错误
  106. 6.6.3 使用多个错误处理中间件组件
  107. 6.7 小结
  108. 第7章 Connect自带的中间件
  109. 7.1 解析cookie、请求主体和查询字符串的中间件
  110. 7.1.1 cookieParser():解析HTTP cookie
  111. 7.1.2 bodyParser():解析请求主体
  112. 7.1.3 limit():请求主体的限制
  113. 7.1.4 query():查询字符串解析
  114. 7.2 实现Web程序核心功能的中间件
  115. 7.2.1 logger():记录请求
  116. 7.2.2 favicon():提供favicon
  117. 7.2.3 methodOverride():伪造HTTP方法
  118. 7.2.4 vhost():虚拟主机
  119. 7.2.5 session():会话管理
  120. 7.3 处理Web程序安全的中间件
  121. 7.3.1 basicAuth():HTTP基本认证
  122. 7.3.2 csrf():跨站请求伪造防护
  123. 7.3.3 errorHandler():开发错误处理
  124. 7.4 提供静态文件服务的中间件
  125. 7.4.1 static():静态文件服务
  126. 7.4.2 compress():压缩静态文件
  127. 7.4.3 directory():目录列表
  128. 7.5 小结
  129. 第8章 Express
  130. 8.1 生成程序骨架
  131. 8.1.1 安装Express的可执行程序
  132. 8.1.2 生成程序
  133. 8.1.3 探索程序
  134. 8.2 配置Express和你的程序
  135. 基于环境的配置
  136. 8.3 渲染视图
  137. 8.3.1 视图系统配置
  138. 8.3.2 视图查找
  139. 8.3.3 把数据输出到视图中
  140. 8.4 处理表单和文件上传
  141. 8.4.1 实现照片模型
  142. 8.4.2 创建照片上传表单
  143. 8.4.3 显示上传照片列表
  144. 8.5 创建资源下载
  145. 8.5.1 创建照片下载路由
  146. 8.5.2 实现照片下载路由
  147. 8.6 小结
  148. 第9章 Express进阶
  149. 9.1 认证用户
  150. 9.1.1 保存和加载用户
  151. 9.1.2 注册新用户
  152. 9.1.3 已注册用户登录
  153. 9.1.4 用户加载中间件
  154. 9.2 先进的路由技术
  155. 9.2.1 校验用户内容提交
  156. 9.2.2 特定路由中间件
  157. 9.2.3 实现分页
  158. 9.3 创建一个公开的REST API
  159. 9.3.1 设计API
  160. 9.3.2 添加基本的认证
  161. 9.3.3 实现路由
  162. 9.3.4 启用内容协商
  163. 9.4 错误处理
  164. 9.4.1 处理404错误
  165. 9.4.2 处理错误
  166. 9.5 小结
  167. 第10章 测试Node程序
  168. 10.1 单元测试
  169. 10.1.1 assert模块
  170. 10.1.2 Nodeunit
  171. 10.1.3 Mocha
  172. 10.1.4 Vows
  173. 10.1.5 should.js
  174. 10.2 验收测试
  175. 10.2.1 Tobi
  176. 10.2.2 Soda
  177. 10.3 小结
  178. 第11章 Web程序模板
  179. 11.1 用模板保持代码的整洁性
  180. 模板实战
  181. 11.2 嵌入JavaScript的模板
  182. 11.2.1 创建模板
  183. 11.2.2 用EJS过滤器处理模板数据
  184. 11.2.3 将EJS集成到你的程序中
  185. 11.2.4 在客户端程序中使用EJS
  186. 11.3 使用Mustache模板语言与Hogan
  187. 11.3.1 创建模板
  188. 11.3.2 Mustache标签
  189. 11.3.3 微调Hogan
  190. 11.4 用Jade做模板
  191. 11.4.1 Jade基础知识
  192. 11.4.2 Jade模板中的逻辑
  193. 11.4.3 组织Jade模板
  194. 11.5 小结
  195. 第三部分 在Node中更进一步
  196. 第12章 部署Node程序并维持正常运行时间
  197. 12.1 安置Node程序
  198. 12.1.1 专用的和虚拟私有服务器
  199. 12.1.2 云主机
  200. 12.2 部署的基础知识
  201. 12.2.1 从Git存储库部署
  202. 12.2.2 让Node保持运行
  203. 12.3 让正常运行时间和性能达到最优
  204. 12.3.1 用Upstart维护正常运行时间
  205. 12.3.2 集群API:利用多核的优势
  206. 12.3.3 静态文件及代理
  207. 12.4 小结
  208. 第13章 超越Web服务器
  209. 13.1 Socket.IO
  210. 13.1.1 创建一个最小的Socket.IO程序
  211. 13.1.2 用Socket.IO触发页面和CSS的重新加载
  212. 13.1.3 Socket.IO的其他用法
  213. 13.2 深入TCP/IP网络
  214. 13.2.1 处理缓冲区和二进制数据
  215. 13.2.2 创建TCP服务器
  216. 13.2.3 创建TCP客户端
  217. 13.3 与操作系统交互的工具
  218. 13.3.1 单例的全局process对象
  219. 13.3.2 使用文件系统模块
  220. 13.3.3 繁衍外部进程
  221. 13.4 开发命令行工具
  222. 13.4.1 解析命令行参数
  223. 13.4.2 处理stdin和stdout
  224. 13.4.3 添加彩色的输出
  225. 13.5 小结
  226. 第14章 Node生态系统
  227. 14.1 给Node开发人员的在线资源
  228. 14.1.1 Node和模块的参考资料
  229. 14.1.2 Google群组
  230. 14.1.3 IRC
  231. 14.1.4 GitHub问题列表
  232. 14.2 GitHub
  233. 14.2.1 GitHub入门
  234. 14.2.2 添加一个项目到GitHub中
  235. 14.2.3 用GitHub协作
  236. 14.3 为npm库做贡献
  237. 14.3.1 准备包
  238. 14.3.2 编写包规范
  239. 14.3.3 测试和发布包
  240. 14.4 小结
  241. 附录A 安装Node和社区附加组件
  242. A.1 在OS X上的安装
  243. 用Homebrew安装
  244. A.2 在Windows上的安装
  245. A.3 在Linux上的安装
  246. A.3.1 在Ubuntu上安装的前提
  247. A.3.2 在CentOS上安装的前提
  248. A.4 编译Node
  249. A.5 使用Node包管理器
  250. A.5.1 寻找包
  251. A.5.2 安装包
  252. A.5.3 探索文档和包代码
  253. 附录B 调试Node
  254. B.1 用JSHint分析代码
  255. B.2 输出调试信息
  256. B.2.1 用console模块调试
  257. B.2.2 用debug模块管理调试输出
  258. B.3 Node内置的调试器
  259. B.3.1 调试器导览
  260. B.3.2 调试器中状态的检查及处理
  261. B.4 Node检查器
  262. B.4.1 Node检查器入门
  263. B.4.2 Node检查器导航
  264. B.4.3 在Node检查器中浏览状态
  265. 附录C Express的扩展及配置
  266. C.1 扩展Express
  267. C.1.1 注册模板引擎
  268. C.1.2 consolidate.js模板
  269. C.1.3 Express的扩展及框架
  270. C.2 高级配置
  271. C.2.1 操作JSON响应
  272. C.2.2 JSON响应格式
  273. C.2.3 信任反向代理头域
  274. 看完了

作者〔美〕Mike Cantelon〔美〕TJ Holowaychuk〔美〕Nathan Rajlich

译者吴海星

类别 图书 / 非虚构

出版社人民邮电出版社

出版日期

ISBN9787115352460

提供方图灵社区

标签编程(395)JavaScript(32)web开发(11)Node.js(3)node.js(1)nodejs(2)

喜欢这本书的人也喜欢

来自豆瓣读书的评论3