计算机书籍控

Node学习指南

   ■ 探索Node独特的异步开发的实现方式;■ 使用Express架构和Connect中间件构建Node应用示例;■ 使用NoSQL解决方案,比如Redis和MongoDB,探索Node的关系数据库模块;■ 使用PDF文件,提供HTML5媒体,使用Canvas创建图形;■ 使用WebSockets创建浏览器和服务器的双向通信;■ 深入学习如何调试和测试程序;■ 在云服务器或者自己的系统上部署Node应用程序。    精彩的内容将帮助你将Web开发技能从浏览器端转向Node服务器,并且学习如何使用Node这种基于JavaScript的平台编写出快速和高可扩展性的网络应用。你可以快速掌握Node的核心技能,获得使用内建和扩展模块的经验,并了解客户端编程和服务器端编程的不同和相同之处。如果你喜欢使用JavaScript,书中提供了很多代码和开发的示例来帮助你学习Node服务器端的开发。

目录


目 录

第1章 Node.js:启动与运行 1 1.1 搭建Node开发环境 2 1.1.1 Linux(Ubuntu)下安装Node 2 1.1.2 Windows 7平台下Node+WebMatrix 4 1.1.3 升级Node 8 1.2 开始Node开发 9 1.2.1 Hello, World in Node 9 1.2.2 分析“Hello,World” 11 1.3 异步函数及Node事件循环 13 1.3.1 使用异步方式读取文件 14 1.3.2 观察异步程序流程 15 1.4 Node的优势 19

第2章 Node与REPL 20 2.1 REPL:先睹为快和未定义的表达式 20 2.2 REPL的优势:更好地理解表层之下的JavaScript 22 2.3 多行以及更复杂的JavaScript 23 2.3.1 REPL命令 26 2.3.2 REPL和rlwrap 27 2.3.3 定制REPL 28 2.4 不可预计的意外——记得经常保存 32

第3章 Node核心库 33 3.1 全局对象:global、process和Buffer 34 3.1.1 global 34 3.1.2 process 36 3.1.3 Buffer 38 3.2 定时器:setTimeout、clearTimeout、setInterval 和clearInterval 39 3.3 Servers、Streams和Sockets 40 3.3.1 TCP Sockets和Servers 41 3.3.2 HTTP 43 3.3.3 UDP数据报套接字 45 3.3.4 流、管道和Readline 47 3.4 子进程 49 3.4.1 child_process.spawn 50 3.4.2 child_process.exec和child_process.execFile 52 3.4.3 child_process.fork 52 3.4.4 在Windows系统中使用子进程 53 3.5 域名解析和URL处理 54 3.6 Utilities模块和对象继承 55 3.7 Events和EventEmitter 59

第4章 Node模块系统 63 4.1 使用require和默认路径加载模块 63 4.2 外部模块和Node包管理工具 65 4.3 如何找到你需要的模块 69 4.3.1 Colors:简单至上 71 4.3.2 Optimist:另一个简单的小模块 73 4.3.3 Underscore 74 4.4 创建自定义模块 75 4.4.1 打包整个目录 76 4.4.2 为你的模块发布做准备 76 4.4.3 发布模块 80

第5章 控制流、异步模式和异常处理 82 5.1 使用Callback而不使用Promises 82 5.2 顺序调用、嵌套回调、异常捕获 85 5.3 异步模式和控制流模块 92 5.3.1 Step 93 5.3.2 Async 96 5.4 Node编码风格 101

第6章 路由寻址、服务文件和中间件 103 6.1 从头开始:创建一个简单的静态文件服务器 103 6.2 中间件 110 6.2.1 Connect基本知识 111 6.2.2 Connect中间件 113 6.2.3 定制Connect中间件 118 6.3 Routers 121 6.4 Proxies 124

第7章 Express框架 128 7.1 Express:启动和运行 129 7.2 app.js文件 130 7.3 错误处理 133 7.4 Express与Connect的关系 134 7.5 路由 135 7.5.1 路由路径 137 7.5.2 路由和HTTP动词 140 7.6 关于MVC 147 7.7 使用cURL测试Express应用程序 152

第8章 Express、模板系统和CSS 154 8.1 EJS模板系统(Embedded JavaScript Template System) 154 8.1.1 基本语法 155 8.1.2 Node与EJS 156 8.1.3 EJS与Node Filters 158 8.2 在Express中使用EJS 159 8.2.1 多对象环境的改造 161 8.2.2 静态文件路由 162 8.2.3 处理一个新对象的Post请求 164 8.2.4 Widget索引和生成picklist 166 8.2.5 显示单个对象并确认对象的删除操作 168 8.2.6 提供更新信息的表达以及处理PUT请求 170 8.3 Jade模板系统 173 8.3.1 Jade语法简介 173 8.3.2 使用block和extends模块化视图模板 176 8.3.3 Widget View转换为Jade模板 178 8.3.4 转换edit和delete表单 179 8.4 使用Stylus完成简单的CSS样式 182

第9章 结构化数据、Noe和Redis 187 9.1 Node和Redis 188 9.2 构建游戏得分排行榜 190 9.3 创建消息队列 197 9.4 为Express应用程序添加统计中间件 201

第10章 Node和MongoDB:文档中心数据 206 10.1 MongoDB Native Node.js Driver(MongoDB原生Node.js驱动) 207 10.1.1 MongoDB入门 207 10.1.2 定义、创建以及销毁MongoDB Collection 208 10.1.3 为Collection添加数据 209 10.1.4 查询数据 212 10.1.5 使用Updates、Upserts、Find和Remove 216 10.2 使用Mongoose实现Widget模块 221 10.3 重构Widget工厂 222 10.4 添加MongoDB后台 223

第11章 Node与关系型数据库 228 11.1 db-mysql入门 229 11.1.1 查询字符串和方法链 229 11.1.2 使用查询字符串更新数据库 233 11.1.3 使用方法链更新数据库 235 11.2 使用node-mysql实现本地MySQL访问 237 11.2.1 使用node-mysql做基本的CRUD操作 237 11.2.2 MySQL事务与mysql-queues 239 11.3 ORM与Sequelize 241 11.3.1 定义模型 241 11.3.2 ORM风格的CRUD实现 243 11.3.3 添加多个对象 246 11.3.4 从关系型到ORM 247

第12章 图形和HTML5 Video 248 12.1 创建和使用PDF 248 12.1.1 使用子进程访问PDF工具 249 12.1.2 使用PDFKit创建PDF 257 12.2 从子进程访问ImageMagick 258 12.3 通过HTTP提供HTML5 Video服务 263 12.4 创建和流化画布内容(Canvas Content) 267

第13章 WebSockets和Socket.IO 271 13.1 WebSockets 271 13.2 Socket.IO简介 272 13.2.1 一个简单的通信范例 273 13.2.2 异步世界里的WebSockets 276 13.2.3 关于客户端代码 277 13.3 配置Socket.IO 278 13.4 Chat:WebSockets版本的“Hello, World” 279 13.5 在Express中使用Socket.IO 282

第14章 Node应用程序的测试和调试 284 14.1 调试 284 14.1.1 Node.js Debugger 284 14.1.2 使用Node Inspector的客户端调试 287 14.2 单元测试(Unit Testing) 289 14.2.1 Assert与单元测试 289 14.2.2 Nodeunit与单元测试 293 14.2.3 其他测试框架 295 14.3 验收测试 299 14.3.1 Soda和Selenium测试 299 14.3.2 通过Tobi和Zombie模拟浏览器 303 14.4 性能测试:基准问题和负载测试 304 14.4.1 ApacheBench基准测试 305 14.4.2 Nodeload与负载测试 309 14.5 Nodemon更新代码 312

第15章 安全及防护 313 15.1 数据加密 314 15.1.1 TSL/SSL配置 314 15.1.2 使用HTTPS 315 15.1.3 如何安全的保存密码 317 15.2 认证/授权及Passport 320 15.2.1 授权/认证策略:Oauth、OpenID、用户名/密码验证 321 15.2.2 Local Passport Strategy 323 15.2.3 Twitter Passport Strategy(OAuth) 330 15.3 保护应用程序,防止攻击 336 15.3.1 不要使用eval 336 15.3.2 尽量使用复选框、单选按钮和下拉式选项 337 15.3.3 使用node-validator 337 15.4 在沙箱中执行代码 339

第16章 扩展和部署Node应用 343 16.1 把你的节点部署到服务器上 343 16.1.1 编写package.json文件 344 16.1.2 使用Forever让你的应用“永不掉线” 347 16.1.3 使用Node和Apache 350 16.1.4 改善性能 352 16.2 部署到云服务 352 16.2.1 通过Cloud9 IDE部署到Windows Azure 353 16.2.2 Joyent Development SmartMachine 355 16.2.3 Heroku 355 16.2.4 Amazon EC2 356 16.2.5 Nodejitsu 356

附录 Node、Git和GitHub 357

书籍下载

免费下载 密码:qh74

正版书籍

Node学习指南