内容简介
郭家寶(BYVoid),清华大学计算机系2010级本科生,曾获得信息学奥林匹克竞赛(NOI)金牌。他从中学开始涉足开源开发,参与过「汉典网」等许多Web项目的前后端设计开发,同时是Linux输入法ibus-pinyin的作者。他从2009年Node.js诞生之始,就一直在关注它的发展,有过许多用Node.js建立网站的经验,活跃于CNode社区。
目录
目 录 第1章 Node.js简介 1 1.1 Node.js 是什么 2 1.2 Node.js 能做什么 3 1.3 异步式 I/O 与事件驱动 4 1.4 Node.js 的性能 5 1.4.1 Node.js 架构简介 5 1.4.2 Node.js 与 PHP + Nginx 6 1.5 JavaScript 简史 6 1.5.1 Netscape 与 LiveScript 7 1.5.2 Java 与 Javascript 7 1.5.3 微软的加入—— JScript 8 1.5.4 标准化—— ECMAScript 8 1.5.5 浏览器兼容性问题 9 1.5.6 引擎效率革命和 JavaScript 的未来 9 1.6 CommonJS 10 1.6.1 服务端 JavaScript 的重生 10 1.6.2 CommonJS 规范与实现 11 1.7 参考资料 12 第2章 安装和配置Node.js 13 2.1 安装前的准备 14 2.2 快速安装 14 2.2.1 Microsoft Windows系统上安装Node.js 14 2.2.2 Linux 发行版上安装Node.js 16 2.2.3 Mac OS X上安装Node.js 16 2.3 编译源代码 17 2.3.1 在 POSIX 系统中编译 17 2.3.2 在 Windows系统中编译 18 2.4 安装Node 包管理器 18 2.5 安装多版本管理器 19 2.6 参考资料 21 第3章 Node.js快速入门 23 3.1 开始用 Node.js 编程 24 3.1.1 Hello World 24 3.1.2 Node.js 命令行工具 25 3.1.3 建立 HTTP 服务器 26 3.2 异步式 I/O 与事件式编程 29 3.2.1 阻塞与线程 29 3.2.2 回调函数 31 3.2.3 事件 33 3.3 模块和包 34 3.3.1 什么是模块 35 3.3.2 创建及加载模块 35 3.3.3 创建包 38 3.3.4 Node.js 包管理器 41 3.4 调试 45 3.4.1 命令行调试 45 3.4.2 远程调试 47 3.4.3 使用 Eclipse 调试 Node.js 48 3.4.4 使用 node-inspector 调试Node.js 54 3.5 参考资料 55 第4章 Node.js核心模块 57 4.1 全局对象 58 4.1.1 全局对象与全局变量 58 4.1.2 process 58 4.1.3 console 60 4.2 常用工具 util 61 4.2.1 util.inherits 61 4.2.2 util.inspect 62 4.3 事件驱动 events 63 4.3.1 事件发射器 64 4.3.2 error 事件 65 4.3.3 继承 EventEmitter 65 4.4 文件系统 fs 65 4.4.1 fs.readFile 66 4.4.2 fs.readFileSync 67 4.4.3 fs.open 67 4.4.4 fs.read 68 4.5 HTTP 服务器与客户端 70 4.5.1 HTTP 服务器 70 4.5.2 HTTP 客户端 74 4.6 参考资料 77 第5章 使用Node.js进行Web开发 79 5.1 准备工作 80 5.1.1 使用http模块 82 5.1.2 Express 框架 83 5.2 快速开始 84 5.2.1 安装 Express 84 5.2.2 建立工程 85 5.2.3 启动服务器 86 5.2.4 工程的结构 87 5.3 路由控制 89 5.3.1 工作原理 89 5.3.2 创建路由规则 92 5.3.3 路径匹配 93 5.3.4 REST 风格的路由规则 94 5.3.5 控制权转移 95 5.4 模板引擎 97 5.4.1 什么是模板引擎 97 5.4.2 使用模板引擎 98 5.4.3 页面布局 99 5.4.4 片段视图 100 5.4.5 视图助手 100 5.5 建立微博网站 102 5.5.1 功能分析 102 5.5.2 路由规划 102 5.5.3 界面设计 103 5.5.4 使用Bootstrap 104 5.6 用户注册和登录 107 5.6.1 访问数据库 107 5.6.2 会话支持 110 5.6.3 注册和登入 111 5.6.4 页面权限控制 120 5.7 发表微博 123 5.7.1 微博模型 123 5.7.2 发表微博 125 5.7.3 用户页面 126 5.7.4 首页 127 5.7.5 下一步 129 5.8 参考资料 129 第6章 Node.js进阶话题 131 6.1 模块加载机制 132 6.1.1 模块的类型 132 6.1.2 按路径加载模块 132 6.1.3 通过查找node_modules目录加载模块 133 6.1.4 加载缓存 134 6.1.5 加载顺序 134 6.2 控制流 135 6.2.1 循环的陷阱 135 6.2.2 解决控制流难题 137 6.3 Node.js 应用部署 138 6.3.1 日志功能 138 6.3.2 使用cluster模块 140 6.3.3 启动脚本 142 6.3.4 共享80端口 143 6.4 Node.js 不是银弹 144 6.5 参考资料 146 附录A JavaScript的高级特性 147 附录B Node.js编程规范 167 索引 175 · · · · · · (收起)