新一代信息技术“十三五”系列规划教材

Node.js开发实战教程(慕课版)

基础知识+实战演练+构建博客网站综合实例
分享 推荐 0 收藏 32 阅读 1.4K
钟小平 (主编)

关于本书的内容有任何问题,请联系 桑珊

Node.js入门+基本编程+应用开发
基础知识+实战演练+综合实例
慕课+PPT+教学大纲+教案+源代码+习题参考答案

内容摘要

本书以 Node.js 知识和框架为主线,详细介绍Node.js 开发的基础知识。全书分为10 章,内容包括Node.js入门、Node.js 编程基础、模块与包的管理与使用、文件系统操作、网络编程、SQL 数据库操作、MongoDB数据库操作、Node.js 框架与Express、应用程序测试与部署、综合实例——构建博客网站。本书从编程基础讲起,突出实战操作,通过典型案例详细讲解Node.js 开发中最常用的原生模块与第三方框架和模块。

目录

目录

第 1章 Node.js入门 1
1.1 Node.js简介 1
1.1.1 什么是Node.js 1
1.1.2 Node.js的特点 2
1.1.3 Node.js的应用场合 5
1.2 部署Node.js开发环境 6
1.2.1 在Windows系统上安装Node.js 6
1.2.2 在Linux系统上安装Node.js 7
1.2.3 管理Node.js版本 8
1.2.4 交互式运行环境——REPL 9
1.2.5 安装开发工具Visual Studio Code 10
1.3 开始开发Node.js应用程序 10
1.3.1 实战演练——构建第 一个Node.js应用程序 10
1.3.2 运行Node.js程序 12
1.3.3 调试Node.js程序 13
1.4 本章小结 16
习题 16
第 2章 Node.js编程基础 17
2.1 JavaScript基本语法 17
2.1.1 JavaScript版本 17
2.1.2 JavaScript运行环境 18
2.1.3 JavaScript语句与注释 18
2.1.4 变量 19
2.1.5 数据类型 21
2.1.6 流程控制 23
2.1.7 函数 24
2.1.8 类 27
2.1.9 严格模式 28
2.1.10 JavaScript编程规范 29
2.2 Node.js回调函数 30
2.2.1 什么是回调函数 30
2.2.2 回调函数示例 31
2.3 Node.js事件机制 31
2.3.1 事件循环 32
2.3.2 Node.js事件的监听与触发 33
2.4 Node.js全局对象 34
2.4.1 全局变量__filename和__dirname 35
2.4.2 console模块 35
2.4.3 process对象 36
2.5 Node.js的定时器 39
2.5.1 设置定时器 39
2.5.2 取消定时器 40
2.5.3 Timeout和Immediate类 40
2.5.4 setImmediate()方法
与setTimeout()方法的对比 40
2.5.5 process.nextTick()与setImmediate()的对比 41
2.6 Buffer数据类型 41
2.6.1 创建Buffer实例 42
2.6.2 Buffer用于编码转换 42
2.6.3 将Buffer实例转换为JSON对象 43
2.6.4 Buffer实例基本操作 43
2.7 Node.js的流 45
2.7.1 概述 45
2.7.2 可读流 46
2.7.3 可写流 47
2.7.4 管道读写操作 48
2.8 实战演练——提供图片浏览服务 49
2.8.1 实现思路 49
2.8.2 编写代码 50
2.8.3 运行程序 51
2.9 本章小结 52
习题 52
第3章 模块与包的管理和使用 54
3.1 Node.js的模块系统 54
3.1.1 Node.js为什么要使用模块 54
3.1.2 自定义模块 55
3.1.3 导入模块 55
3.1.4 使用module.exports定义模块 55
3.1.5 exports与module.exports的关系 56
3.1.6 模块加载顺序 57
3.2 使用Node.js的核心模块 59
3.2.1 os模块——提供基本的系统操作方法 59
3.2.2 util模块——提供实用工具 60
3.2.3 path模块——处理和转换文件路径 62
3.2.4 url模块——URL处理与解析 63
3.2.5 querystring模块——URL查询字符串处理和解析 64
3.3 Node.js包的管理与使用 65
3.3.1 什么是npm 65
3.3.2 理解包与模块 66
3.3.3 npm包管理器 66
3.3.4 查找和选择包 66
3.3.5 使用npm命令安装包 70
3.3.6 使用语义版本控制管理代码(包) 71
3.3.7 使用package.json文件管理本地安装包 72
3.3.8 包的其他操作 74
3.3.9 使用淘宝npm镜像 74
3.4 实战演练——抓取网页中的图片 75
3.4.1 技术准备 75
3.4.2 实现思路 76
3.4.3 创建项目目录并准备package.json文件 76
3.4.4 安装request和cheerio包 77
3.4.5 定义一个模块用于解析网页文档 77
3.4.6 编写主入口文件index.js 77
3.4.7 运行程序 78
3.5 本章小结 79
习题 79
第4章 文件系统操作 80
4.1 Node.js的文件系统基础 80
4.1.1 fs模块简介 80
4.1.2 同步文件操作与异步文件操作 81
4.1.3 文件路径 82
4.1.4 文件模式 83
4.1.5 文件系统标志 84
4.1.6 文件描述符 84
4.2 文件与目录基本操作 85
4.2.1 打开文件 85
4.2.2 获取文件信息 85
4.2.3 读取文件 87
4.2.4 写入文件 88
4.2.5 文件的其他基本操作 90
4.2.6 目录的基本操作 91
4.3 文件系统的高级操作 92
4.3.1 使用文件操作的流接口 92
4.3.2 文件遍历 93
4.3.3 文件监视 94
4.3.4 操作JSON文件 96
4.3.5 读取GBK格式的文件 97
4.4 实战演练——操作表格文件 98
4.4.1 使用CSV包的准备工作 98
4.4.2 从CSV文件中读取并解析数据 98
4.4.3 将记录转换为CSV文本并保存到CSV文件中 100
4.4.4 对CSV数据进行转换处理 100
4.4.5 组合使用多个子模块来处理CSV数据 101
4.5 本章小结 101
习题 101
第5章 网络编程 103
5.1 TCP服务器与客户端 103
5.1.1 TCP基础 103
5.1.2 net模块提供的API 104
5.1.3 创建TCP服务器和客户端 106
5.1.4 接收和处理物联网数据 107
5.2 UDP服务器与客户端 108
5.2.1 UDP基础 108
5.2.2 dgram模块提供的API 109
5.2.3 创建UDP服务器和客户端 110
5.2.4 通过UDP实现文件上传 111
5.3 HTTP服务器和客户端 112
5.3.1 HTTP基础 112
5.3.2 实现HTTP服务器 112
5.3.3 实现HTTP客户端 115
5.3.4 HTTP服务器获取并解析请求内容 117
5.4 使用WebSocket实现浏览器与服务器的实时通信 119
5.4.1 WebSocket简介 119
5.4.2 使用Node.js实现WebSocket服务器和客户端 120
5.4.3 浏览器客户端 122
5.4.4 Socket.IO 123
5.5 实战演练——构建实时聊天室 126
5.5.1 准备Web框架 126
5.5.2 编写服务器端程序 128
5.5.3 编写客户端程序 129
5.5.4 测试 130
5.5 本章小结 131
习题 131
第6章 SQL数据库操作 133
6.1 操作MySQL数据库 133
6.1.1 MySQL服务器安装和基本使用 133
6.1.2 Node.js的MySQL驱动 136
6.1.3 连接MySQL数据库 136
6.1.4 执行数据库操作 137
6.1.5 记录的增查改删操作 138
6.1.6 防止SQL注入攻击 139
6.1.7 使用流式查询 140
6.1.8 使用预处理语句 140
6.1.9 使用连接池 141
6.2 优雅地编写异步代码 142
6.2.1 Promise 142
6.2.2 Generator 144
6.2.3 co模块 146
6.2.4 async/await 147
6.2.5 使用Promise包装器操作MySQL数据库 151
6.3 使用Node.js ORM框架操作关系数据库 152
6.3.1 Sequelize简介 152
6.3.2 Sequelize的基本使用 152
6.3.3 使用Sequelize的关联 156
6.4 实战演练——图书借阅记录管理 158
6.4.1 编写模型部分代码 158
6.4.2 编写数据操作部分代码 159
6.5 本章小结 161
习题 161
第7章 MongoDB数据库操作 163
7.1 MongoDB数据库基础 163
7.1.1 NoSQL数据库简介 163
7.1.2 MongoDB数据库简介 164
7.1.3 MongoDB基本概念 164
7.1.4 MongoDB的安装和基本使用 166
7.2 使用原生驱动连接和操作MongoDB数据库 168
7.2.1 连接到MongoDB 169
7.2.2 添加MongoDB文档 169
7.2.3 查询MongoDB文档 170
7.2.4 更改MongoDB文档 171
7.2.5 删除MongoDB文档 172
7.2.6 为MongoDB集合创建索引 172
7.2.7 以“同步”方式编写MongoDB操作代码 172
7.3 使用Mongoose操作MongoDB数据库 173
7.3.1 Mongoose基本概念 173
7.3.2 使用Mongoose的基本步骤 174
7.3.3 文档操作 177
7.3.4 数据验证 180
7.3.5 中间件 181
7.3.6 子文档 183
7.3.7 Mongoose对Promise的支持 184
7.4 实战演练——开发图书使用管理操作接口 184
7.4.1 Mongoose的填充功能 185
7.4.2 模式和模型定义 186
7.4.3 编写数据库操作接口 187
7.4.4 调用数据库操作接口 188
7.5 本章小结 189
习题 189
第8章 Node.js框架与Express 190
8.1 Node.js框架概述 190
8.1.1 MVC框架 190
8.1.2 REST API框架 191
8.1.3 全栈框架 191
8.1.4 实时框架 192
8.1.5 Node.js框架的选择 192
8.2 Express框架基础 192
8.2.1 简单的“Hello World”示例程序 193
8.2.2 使用Express生成器创建项目脚手架 193
8.2.3 Express工作机制 195
8.3 Express路由 197
8.3.1 路由结构 197
8.3.2 路由方法 197
8.3.3 路由路径 198
8.3.4 路由参数 198
8.3.5 路由处理程序 199
8.3.6 响应方法 200
8.3.7 app.route()方法 200
8.3.8 Express路由器 201
8.4 Express中间件 201
8.4.1 进一步理解中间件 202
8.4.2 使用中间件 202
8.4.3 编写自己的中间件 205
8.5 视图与模板引擎 207
8.5.1 模板引擎概述 207
8.5.2 EJS语法 208
8.5.3 EJS模板引擎的使用 209
8.6 Express与数据库集成 210
8.7 Express错误处理 211
8.7.1 捕获错误 211
8.7.2 默认错误处理程序 212
8.7.3 编写错误处理程序 212
8.8 实战演练——图书信息管理的REST API接口 213
8.8.1 了解REST API 213
8.8.2 演练目标 215
8.8.3 实现思路与技术准备 215
8.8.4 创建项目 216
8.8.5 编写数据库接口程序 216
8.8.6 编写主入口文件 218
8.8.7 运行程序进行测试 220
8.8.8 控制API版本 221
8.9 本章小结 222
习题 222
第9章 应用程序测试与部署 224
9.1 Node.js应用程序的单元测试 224
9.1.1 单元测试概述 224
9.1.2 使用断言编写简单的测试脚本 225
9.1.3 使用测试框架Mocha进行单元测试 229
9.2 实战演练——为应用程序进行单元测试 232
9.2.1 熟悉supertest测试库 232
9.2.2 编写测试脚本 235
9.2.3 执行自动化测试 236
9.3 Node.js应用程序的部署和运行管理 237
9.3.1 Node.js应用程序的部署方式 237
9.3.2 让Node.js应用程序更稳定地运行 238
9.3.3 使用PM2管理Node.js应用程序 239
9.3.4 使用PM2的配置文件管理应用程序 241
9.3.5 在Windows平台上配置开机自动启动Node.js应用程序 243
9.4 本章小结 246
习题 246
第 10章 综合实例——构建博客网站 248
10.1 项目准备 248
10.1.1 项目概述 248
10.1.2 创建项目脚手架 249
10.2 数据库设计与实现 250
10.2.1 数据存储和组织技术 250
10.2.2 定义存储文章信息的模型 251
10.2.3 定义存储用户信息的模型 253
10.3 用户界面设计与实现 255
10.3.1 前端技术 256
10.3.2 静态文件 256
10.3.3 公共模板 257
10.3.4 内容模板 258
10.4 业务逻辑设计与实现 260
10.4.1 使用passport实现用户认证 260
10.4.2 session控制 263
10.4.3 使用Express中间件 264
10.4.4 定义控制器处理具体业务 268
10.4.5 路由控制 271
10.4.6 主文件 272
10.5 本章小结 273
习题 273

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

钟小平,青岛云集技术有限公司工程师,出版畅销书《网络操作系统——Windows Server 2012 R2配置与管理》《CentOS Linux系统管理与运维》《OpenStack云计算实战》《Ubuntu Linux操作系统》等。

同系列书

相关图书

联系客服
联系客服
人邮微信
人邮微信
微信二维码
返回顶部
返回顶部