标题：Node Web开发
出版信息
  
原书名： Node Web Development 
原出版社： Packt Publishing 
作者： (美)David Herron    [作译者介绍] 
译者： 鄢学鵾 吴天豪 廖健 
丛书名： 图灵程序设计丛书 
出版社：人民邮电出版社 
ISBN：9787115278326
上架时间：2012-4-16
出版日期：2012 年4月
开本：16开
页码：104
版次：1-1
内容简介
node 是一个服务器端的javascript 解释器，是构建快速响应、高度可扩展网络应用的轻量高效的平台。node 使用事件驱动和非阻塞的i/o 模型，非常适合数据密集、对实时响应要求高的分布式应用。微软、ebay、linkedin、雅虎等世界知名公司及网站均有使用node 的成功案例。
《node web开发》是基于node 开发web 应用的实用指南，全书共分6章，通过示例详尽介绍了node的背景、原理及应用方法。全书内容涉及node 简介、node 安装、node 模块、实现不同版本的简单应用、实现简单的web 服务器和eventemitter，以及数据存储和检索。另外，本书涵盖了node 服务器端开发的主要挑战及应对方案。
《node web开发》适合web 前、后端开发人员学习参考。
目录
《node web开发》 
第1章 node入门 1 
1.1 node能做什么 1 
1.2 为什么要使用node 3 
1.2.1 架构问题：线程，还是异步事件驱动 4 
1.2.2 性能和利用率 5 
1.2.3 服务器利用率、成本和绿色web托管服务 6 
1.3 node、node.js还是node .js 7 
1.4 小结 7 
第2章 安装并配置node 8 
2.1 系统要求 8 
2.2 在符合posix标准的系统上安装 9 
2.3 在mac os x上安装开发者工具 9 
2.3.1 在home目录下安装 9 
2.3.2 在系统级目录下安装node 11 
2.3.3 在mac os x上使用macports安装 12 
2.3.4 在mac os x上使用homebrew安装 12 
2.3.5 在linux上使用软件包管理系统安装 12 
2.3.6 同时安装并维护多个node 13 
2.4 验证安装成功与否 14 
.2.4.1 node命令行工具 14 
2.4.2 用node运行简单的脚本 15 
2.4.3 用node启动服务器 16 
2.5 安装npm——node包管理器 16 
2.6 系统启动时自动启动node服务器 17 
2.7 小结 22 
第3章 node模块 23 
3.1 什么是模块 23 
3.1.1 node模块 24 
3.1.2 node解析require ('module')的方式 24 
3.2 node包管理器 28 
3.2.1 npm包的格式 29 
3.2.2 查找npm包 30 
3.2.3 使用npm命令 31 
3.2.4 node包版本的标识和范围 38 
3.2.5 commonjs模块 39 
3.3 小结 40 
第4章 几种典型的简单应用 41 
4.1 math wizard 41 
4.2 不依赖框架的实现 41 
4.2.1 路由请求 42 
4.2.2 处理url查询参数 43 
4.2.3 乘法运算 44 
4.2.4 其他数学函数的执行 45 
4.2.5 扩展math wizard 48 
4.2.6 长时间运行的运算（斐波那契数） 48 
4.2.7 还缺什么功能 51 
4.2.8 使用connect框架实现math wizard 52 
4.2.9 安装和设置connect 52 
4.2.10 使用connect 53 
4.3 使用express框架实现math wizard 55 
4.3.1 准备工作 55 
4.3.2 处理错误 59 
4.3.3 参数化的url和数据服务 60 
4.4 小结 64 
第5章 简单的web服务器、eventemitter和http客户端 65 
5.1 通过eventemitter发送和接收事件 65 
5.2 http sniffer——监听http会话 67 
5.3 基本的web服务器 69 
5.4 mime类型和mime npm包 78 
5.5 处理cookie 79 
5.6 虚拟主机和请求路由 79 
5.7 发送http客户端请求 79 
5.8 小结 81 
第6章 存取数据 83 
6.1 node的数据存储引擎 83 
6.2 sqlite3——轻量级的进程内sql引擎 83 
6.2.1 安装sqlite 3 83 
6.2.2 用sqlite3实现便签应用 84 
6.2.3 在node中使用其他sql数据库 95 
6.3 mongoose 96 
6.3.1 安装mongoose 96 
6.3.2 用mongoose实现便签应用 97 
6.3.3 对mongodb数据库的其他支持 102 
6.4 如何实现用户验证 102 
6.5 小结 104
前言
欢迎光临Node（也叫Node.js）开发的世界。Node是一种新兴的软件开发平台，它将JavaScript从Web浏览器移植到常规的服务器端。Node运行在Chrome的高速V8引擎上，并附带了一个快速、健壮的异步网络I/O组件库。Node主要用于构建高性能、高可扩展的服务器和客户端应用，以实现真正“实时的Web应用”。 
在经过数年尝试用Ruby和其他语言实现Web服务器组件之后，Ryan Dahl在2009年开发了Node平台。这个探索使他从使用传统的、基于线程的并发模型转向使用事件驱动的异步系统，因为后者更简单（多线程系统以难于开发著称），系统开销更低（与对每个连接维护一个线程相比），因而能提高相应的速度。Node旨在提供一个“创建可扩展网络服务器的简单方式”。这个设计受到了Event Machine（Ruby）和Twisted框架（Python）的影响，并和它们有些类似。 
本书致力于讲述如何用Node构建Web应用。我们会在书中介绍快速学习Node时一些必需的重要概念。本书会教你编写真正的应用，剖析其工作原理，并讨论如何在程序中应用这些理念。我们需要安装Node和npm，学习安装和开发npm包及Node模块。此外，我们还会开发一些应用，度量长时间运行的计算在Node的事件循环中的响应能力，介绍将高负载的工作分派到多个服务器的方法，并介绍Express框架。 
本书内容第1章“Node入门”，介绍了Node平台。这一章讲述了Node的用途、技术构架上的选择、Node的历史和服务器端JavaScript的历史，然后介绍为什么JavaScript仍将受困于浏览器。 
第2章“安装并配置Node”，介绍如何配置Node开发环境，包括多种从源码编译和安装的场景，还会简单介绍在开发环境中如何部署Node。 
第3章“Node模块”，解释了作为开发Node应用基本单位的模块。我们会全面介绍并开发Node模块。然后进一步介绍Node包管理器npm，给出一些使用npm管理已安装包的例子，还将涉及开发npm包并将其发布出来供他人使用。 
第4章“几种典型的简单应用”，在读者已经有一些Node基础知识后，开始探索Node应用的开发。我们会分别使用Node、Connect中间件框架和Express应用框架开发一个简单的应用。虽然应用比较简单，但是我们可以通过其开发探索Node的事件循环，处理长时间的运算，了解异步和同步算法以及如何将繁重的计算交给后台服务器。 
第5章“简单的Web服务器、EventEmitter和HTTP客户端”，介绍了Node里的HTTP客户端和服务器对象。我们会在开发HTTP服务器和客户端应用的同时全面深入介绍HTTP会话。 
第6章“存取数据”，探讨大部分应用都需要的长期可靠的数据存储机制。我们会用SQL和MongoDB数据库引擎实现一个应用。在此期间，我们将用Express框架实现用户验证，更好地展示出错页面。 
阅读要求 
目前，我们一般会采用源码的方式安装Node，这种方式可以很好地用在类Unix和符合POSIX标准的系统上。当然，在接触Node之前，谦逊的心态是必需的，但最为重要的事情还是让大脑供血充足。 
从源码安装的方式需要一个类Unix或类POSIX系统（比如Linux、Mac、FreeBSD、OpenSolaris等）、新的C/C++编译器、OpenSSL库和Python 2.4或更新版本。 
Node程序可以用任何文本编辑器来写，不过一个能处理JavaScript、HTML、CSS等的文本编辑器会更有帮助。 
尽管本书介绍的是Web应用开发，但你并不需要拥有一个Web服务器。Node有自己的Web服务器套件。 
读者对象本书写给所有想在一个新的软件平台上开拓新编程模式的软件工程师。 
服务器端程序员或许能看到一些新奇的概念，对Web应用开发产生新的理解。JavaScript是一门强大的语言，Node的异步特性发挥了JavaScript的优势。 
浏览器端JavaScript“攻城师”或许会觉得在Node中使用JavaScript和编写与DOM操作无关的JavaScript代码很有趣。（Node平台上没有浏览器，所以也没有DOM，除非你安装JSDom。） 
虽然本书各章内容由浅入深，循序渐进，但到底如何阅读本书悉听尊便。 
本书需要读者知道如何编写软件，并且对JavaScript等编程语言有所了解。 
排版约定在本书中，读者会发现不同的文本样式。下面是这些样式的示例和说明。 
正文中的代码使用特殊字体：“http对象封装HTTP协议，它的http.createServer方法会创建一个完整的Web服务器，而.listen方法用于监听特定的端口。” 
新术语及重要词汇都会加粗显示。你将在屏幕上看到的文字，比如菜单或对话框中的文字，会这样在正文中提到：“一个真正安全的系统至少会有用户名和密码输入框。不过，我们这里就直接让用户单击Login按钮了。” 
读者反馈我们始终欢迎来自读者的反馈意见。我们想知道读者对本书的看法，读者喜欢哪些内容或不喜欢哪些内容。读者真正深有感触的反馈，对于我们开发图书产品至关重要。 
读者服务现在你已是Packt引以为荣的读者了，因此我们特别要交待几件事，以保障你作为读者的最大权益。 
下载示例代码 
在官方网站通过自己的账号购买图书的读者，可以下载所有已购买图书的代码 。如果这本书是你在其他地方购买的，访问官方网站并注册，我们将通过电子邮件将相关文件发送给你。 
勘误 
虽然我们会全力确保本书内容的准确性，但错误仍在所难免。如果你发现了本书中的错误（包括文字和代码错误），而且愿意向我们提交这些错误，我们会十分感激。这样一来，不仅可以减少其他读者的疑虑，也有助于本书后续版本的改进。要提交错误，请访问官方网站，选择相关图书，单击errata submission form链接，然后输入勘误信息。经过验证后，你提交的勘误信息就会添加到已有的勘误列表中。要查看已有的勘误信息，请访问官方网站并选择相关图书。 
反盗版声明网上各种形式的盗版是一直存在的问题。Packt非常重视版权和许可证的保护。如果你在网上遇到以任何形式非法复制的我方作品，请尽快告知我们相关的地址或网站名称，以便我们采取补救措施。