第1 章 Node.js 简介
1.1 Node.js 是什么
1.2 Node.js 能做什么
1.3 异步式 I/O 与事件驱动
1.4 Node.js 的性能
1.4.1 Node.js 架构简介
1.4.2 Node.js 与 PHP + Nginx
Snoopyxd 详细对比了 Node.js 与 PHP+Nginx 组合,结果显示在3000并发连接、30秒的测试下,输出“hello world”请求:
PHP 每秒响应请求数为3624,平均每个请求响应时间为0.39秒;
Node.js 每秒响应请求数为7677,平均每个请求响应时间为0.13秒。
而同样的测试,对MySQL查询操作:
PHP 每秒响应请求数为1293,平均每个请求响应时间为0.82秒;
Node.js 每秒响应请求数为2999,平均每个请求响应时间为0.33秒。
1.5 JavaScript 简史
1.5.1 Netscape 与 LiveScript
1.5.2 Java 与 Javascript
1.5.3 微软的加入—— JScript
1.5.4 标准化—— ECMAScript
1.5.5 浏览器兼容性问题
1.5.6 引擎效率革命和 JavaScript 的未来
1.6 CommonJS
1.6.1 服务端 JavaScript 的重生
1.6.2 CommonJS 规范与实现.
1.7 参考资料
第2 章 安装和配置Node.js
2.1 安装前的准备
2.2 快速安装
2.2.1 Microsoft Windows 系统上安装Node.js
在 Windows 上安装 Node.js 十分方便,你只需要访问http://nodejs.org,点击Download链
接,然后选择Windows Installer,下载安装包。
2.2.2 Linux 发行版上安装Node.js
2.2.3 Mac OS X 上安装Node.js
2.3 编译源代码
2.3.1 在 POSIX 系统中编译
2.3.2 在 Windows 系统中编译
2.4 安装Node 包管理器
2.5 安装多版本管理器
2.6 参考资料
第3 章 Node.js 快速入门
3.1 开始用 Node.js 编程
3.1.1 Hello World
3.1.2 Node.js 命令行工具
3.1.3 建立 HTTP 服务器
让我们创建一个 HTTP 服务器吧。建立一个名为 app.js 的文件,内容
为:
//app.js
var http = require('http');
http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>Hello World</p>');
}).listen(3000);
console.log("HTTP server is listening at port 3000.");
接下来运行 node app.js命令,打开浏览器访问 http://127.0.0.1:3000,
3.2 异步式 I/O 与事件式编程
3.2.1 阻塞与线程
3.2.2 回调函数
3.2.3 事件
3.3 模块和包
3.3.1 什么是模块
3.3.2 创建及加载模块
3.3.3 创建包
3.3.4 Node.js 包管理器
3.4 调试
3.4.1 命令行调试
3.4.2 远程调试
3.4.3 使用 Eclipse 调试 Node.js
3.4.4 使用 node-inspector 调试Node.js
3.5 参考资料
第4 章 Node.js 核心模块
4.1 全局对象
4.1.1 全局对象与全局变量
4.1.2 process
4.1.3 console
4.2 常用工具 util
4.2.1 util.inherits
4.2.2 util.inspect
4.3 事件驱动 events
4.3.1 事件发射器
4.3.2 error 事件
4.3.3 继承 EventEmitter
4.4 文件系统 fs
4.4.1 fs.readFile
4.4.2 fs.readFileSync
4.4.3 fs.open
4.4.4 fs.read
4.5 HTTP 服务器与客户端
4.5.1 HTTP 服务器
4.5.2 HTTP 客户端
4.6 参考资料
第5 章 使用Node.js 进行Web 开发
5.1 准备工作
5.1.1 使用http 模块
5.1.2 Express 框架
Express ( http://expressjs.com/ ) 除了为 http 模块提供了更高层的接口外,还实现了许多功能,其中包括:
路由控制;
模板解析支持;
动态视图;
用户会话;
CSRF 保护;
静态文件服务;
错误控制器;
访问日志;
缓存;
插件支持。
5.2 快速开始
5.2.1 安装 Express
5.2.2 建立工程
5.2.3 启动服务器
5.2.4 工程的结构
5.3 路由控制
5.3.1 工作原理
5.3.2 创建路由规则
5.3.3 路径匹配
5.3.4 REST 风格的路由规则
5.3.5 控制权转移
5.4 模板引擎
5.4.1 什么是模板引擎
5.4.2 使用模板引擎
5.4.3 页面布局
5.4.4 片段视图
5.4.5 视图助手
5.5 建立微博网站
5.5.1 功能分析
5.5.2 路由规划
5.5.3 界面设计
5.5.4 使用Bootstrap
5.6 用户注册和登录
5.6.1 访问数据库
5.6.2 会话支持
5.6.3 注册和登入
5.6.4 页面权限控制
5.7 发表微博
5.7.1 微博模型
5.7.2 发表微博
5.7.3 用户页面
5.7.4 首页
5.7.5 下一步
https://github.com/BYVoid/microblog
5.8 参考资料
第6 章 Node.js 进阶话题
6.1 模块加载机制
6.1.1 模块的类型
6.1.2 按路径加载模块
6.1.3 通过查找node_modules 目录加载模块
6.1.4 加载缓存
6.1.5 加载顺序
6.2 控制流
6.2.1 循环的陷阱
6.2.2 解决控制流难题
6.3 Node.js 应用部署
6.3.1 日志功能
6.3.2 使用cluster 模块
6.3.3 启动脚本
6.3.4 共享80 端口
6.4 Node.js 不是银弹
6.5 参考资料
附录A JavaScript 的高级特性
附录B Node.js 编程规范
索引