第1章 模块化编程 1
1.1 初识模块化思想 1
1.1.1 模块化的概念 2
1.1.2 模块化开发 2
1.2 模块化编程的演变 3
1.2.1 全局函数 4
1.2.2 对象命名空间 6
1.2.3 函数的作用域(闭包) 8
1.2.4 维护和扩展 10
小结 13
习题 13
第2章 初识Node.js 14
2.1 Node.js概述 14
2.1.1 学习Node.js的目的 14
2.1.2 客户端和服务器端 15
2.1.3 JavaScript在客户端和服务器端的区别 15
2.2 Node.js简介 16
2.2.1 Node.js的概念 16
2.2.2 Node.js的特点和优势 16
2.3 Node.js的安装和配置 17
2.3.1 下载和安装 17
2.3.2 CMD命令台 20
2.3.3 Path环境变量 22
2.3.4 快速体验Node.js 23
2.4 Node.js基础入门 25
2.4.1 REPL运行环境 25
2.4.2 global对象和模块作用域 27
2.4.3 全局可用变量、函数和对象 31
2.4.4 Node.js模块化重写计算器案例 34
2.4.5 require()的模块加载规则 36
2.4.6 模块的缓存 38
小结 39
习题 40
第3章 异步编程和包资源管理 41
3.1 异步编程 41
3.1.1 同步和异步 42
3.1.2 回调函数 44
3.2 Node.js的包和NPM 48
3.2.1 包的概念 48
3.2.2 NPM的概念 49
3.2.3 NPM的基本应用 50
3.2.4 包模块加载规则 51
小结 53
习题 53
第4章 Node.js文件操作 54
4.1 基本文件操作 54
4.1.1 文件写入 55
4.1.2 向文件中追加内容 58
4.1.3 文件读取 60
4.1.4 文件复制 61
4.1.5 获取文件信息 64
4.2 案例——控制歌词滚动 67
4.3 文件相关操作 70
4.3.1 路径字符串操作(Path模块) 70
4.3.2 目录操作 71
小结 75
习题 75
第5章 Node.js中处理数据I/O 76
5.1 Buffer缓冲区 77
5.1.1 二进制数据和乱码 77
5.1.2 Buffer的构造函数 79
5.1.3 写入缓冲区 80
5.1.4 从缓冲区读取数据 82
5.1.5 拼接缓冲区 83
5.2 Stream文件流 84
5.2.1 文件流的概念 84
5.2.2 Node.js的可读流和可写流 85
5.2.3 使用pipe()处理大文件 89
小结 90
习题 90
第6章 Node.js网络编程 91
6.1 Node.js网络编程基础 92
6.1.1 IP地址和端口号 92
6.1.2 套接字Socket简单模型 93
6.2 Node.js中实现套接字服务 95
6.2.1 Net.Server对象 95
6.2.2 Net.Socket对象 99
6.3 Node.js进程管理 106
6.3.1 Process模块获取终端输入 106
6.3.2 多人广播消息 107
6.4 案例——终端聊天室 110
小结 120
习题 120
第7章 Node.js中实现HTTP服务 121
7.1 HTTP协议 122
7.1.1 HTTP协议简介 122
7.1.2 HTTP请求响应流程 124
7.1.3 HTTP的请求报文和响应报文 125
7.2 Node.js的HTTP服务 130
7.2.1 HTTP模块常用API 130
7.2.2 使用HTTP模块构建Web服务器 133
7.3 HTTP服务请求处理 134
7.3.1 根据不同的URL发送不同响应消息 134
7.3.2 HTTP处理静态资源服务 136
7.3.3 动态处理静态资源请求 141
小结 146
习题 146
第8章 综合项目——我的音乐 147
8.1 项目简介 147
8.1.1 项目功能展示 148
8.1.2 项目开发流程 149
8.1.3 需求分析 150
8.1.4 项目结构 150
8.2 项目实现 151
8.2.1 项目初始化 151
8.2.2 制作数据文件 156
8.2.3 制作音乐首页 157
8.2.4 添加歌曲 159
8.2.5 删除歌曲 162
8.2.6 编辑歌曲 163
小结 166
习题 166