书籍详情
Node与Express开发(第2版)
作者:[美]伊桑·布朗(Ethan Brown)
出版社:人民邮电出版社
出版时间:2021-06-01
ISBN:9787115565099
定价:¥109.80
购买这本书可以去
内容简介
本书系统地讲解了使用Express开发动态Web应用的流程和步骤。作者不仅讲授了开发公共站点及REST API的基础知识,还讲解了构建单页、多页及混合Web应用的规划方式及实践。为了适应中间件及相关工具在过去几年里的变化,第2版更侧重于Express作为提供API的后端服务器,并新增了单页应用的示例。本书适合希望使用JavaScript、Node、Express构建Web应用的开发人员阅读。
作者简介
伊桑·布朗(Ethan Brown),美国VMS公司技术总监,负责公司旗舰产品的架构和实现。他拥有20多年的编程经验,在Node、Express、JavaScript、React的实践方面拥有独到见解。
目录
前言 xvii
第 1 章 Express是什么 1
1.1 JavaScript的革命 1
1.2 Express简介 2
1.3 服务器端应用和客户端应用 4
1.4 Express简史 4
1.5 Node:另一种Web服务器 5
1.6 Node生态系统 6
1.7 开源协议 7
1.8 小结 8
第 2 章 Node的世界 9
2.1 获取Node 9
2.2 使用终端 10
2.3 编辑器 11
2.4 npm 11
2.5 用Node做一个简单的Web服务器 12
2.5.1 Hello world 13
2.5.2 事件驱动编程 14
2.5.3 路由 14
2.5.4 提供静态资源 15
2.6 进入Express 17
第 3 章 Express的方式 18
3.1 脚手架 18
3.2 草地鹨旅游网站 19
3.3 初始工作 19
3.4 视图与布局 22
3.5 静态文件与视图 25
3.6 视图中的动态内容 26
3.7 小结 26
第 4 章 项目整顿 27
4.1 项目文件与目录结构 27
4.2 实践 28
4.3 版本控制 28
4.4 在本书学习中如何使用Git 29
4.4.1 亲手录入 29
4.4.2 使用官方版本库 30
4.5 npm包 31
4.6 项目元数据 32
4.7 Node模块 32
4.8 小结 34
第 5 章 质量保证 35
5.1 QA计划 36
5.2 QA:是否值得 37
5.3 逻辑与表示 38
5.4 测试类型 38
5.5 QA技术 38
5.6 安装和配置Jest 39
5.7 单元测试 40
5.7.1 模拟 40
5.7.2 为可测试性而重构应用 40
5.7.3 写第 一个测试 41
5.7.4 测试维护 43
5.7.5 代码覆盖率 43
5.8 集成测试 44
5.9 Linting 47
5.10 持续集成 50
5.11 小结 51
第 6 章 request和response对象 52
6.1 URL的各个组成部分 52
6.2 HTTP请求方法 53
6.3 请求头 54
6.4 响应头 54
6.5 互联网媒体类型 55
6.6 请求的Body 55
6.7 request对象 55
6.8 response对象 57
6.9 深入源代码 59
6.10 按功能归纳 59
6.10.1 渲染内容 60
6.10.2 处理表单 61
6.10.3 API服务 62
6.11 小结 63
第 7 章 视图模板——使用Handlebars 64
7.1 何时使用模板 65
7.2 选择模板引擎 66
7.3 Pug:另辟蹊径 66
7.4 Handlebars基础 67
7.4.1 注释 69
7.4.2 代码块 69
7.4.3 服务器端模板 70
7.4.4 视图和布局 71
7.4.5 在Express中使用(或不使用)布局 73
7.4.6 sections 73
7.4.7 partial模板 74
7.4.8 完善模板 76
7.5 小结 77
第 8 章 表单处理 78
8.1 把客户端数据发送到服务器 78
8.2 HTML表单 78
8.3 表单的编码 79
8.4 处理表单的不同做法 80
8.5 使用Express处理表单 81
8.6 使用fetch发送表单数据 83
8.7 文件上传 85
8.8 提升文件上传的UI 88
8.9 小结 88
第 9 章 Cookie和Session 89
9.1 提取敏感信息 91
9.2 Express中的Cookie 91
9.3 查看Cookie 93
9.4 Session 93
9.4.1 内存存储 94
9.4.2 使用Session 95
9.5 使用Session实现flash消息 95
9.6 Session的用途 97
9.7 小结 97
第 10 章 中间件 98
10.1 基本原理 99
10.2 中间件示例 99
10.3 常用中间件 102
10.4 第三方中间件 104
10.5 小结 104
第 11 章 发送邮件 105
11.1 SMTP、MSA和MTA 105
11.2 接收邮件 106
11.3 邮件头 106
11.4 邮件格式 106
11.5 HTML邮件 107
11.6 Nodemailer 107
11.6.1 发送邮件 108
11.6.2 发送给多个收件人 109
11.7 群发邮件更好的选择 110
11.8 发送HTML邮件 110
11.8.1 HTML邮件中的图片 111
11.8.2 使用视图来发送HTML邮件 111
11.8.3 封装邮件功能 113
11.9 小结 114
第 12 章 考虑生产环境中的问题 115
12.1 运行环境 115
12.2 特定环境的配置 116
12.3 运行Node进程 117
12.4 网站的扩展 118
12.4.1 使用应用集群实现水平扩展 119
12.4.2 处理未捕获的异常 121
12.4.3 使用多台服务器完成水平扩展 123
12.5 监控网站的运行 123
12.6 压力测试 124
12.7 小结 125
第 13 章 持久化 126
13.1 文件系统持久化 126
13.2 云持久化 128
13.3 数据库持久化 129
13.3.1 关于性能的提醒 129
13.3.2 数据库层抽象 130
13.3.3 设置MongoDB 131
13.3.4 Mongoose 132
13.3.5 使用Mongoose连接数据库 132
13.3.6 创建模式和模型 133
13.3.7 使用种子数据初始化 134
13.3.8 获取数据 136
13.3.9 更新数据 138
13.3.10 PostgreSQL 139
13.3.11 新增数据 145
13.4 使用数据库存储Session 146
13.5 小结 148
第 14 章 路由 149
14.1 路由与SEO 151
14.2 子域名 151
14.3 路由处理函数也是中间件 152
14.4 路由路径和正则表达式 154
14.5 路由参数 154
14.6 组织路由 155
14.7 在模块中声明路由 156
14.8 合乎逻辑地分组路由 157
14.9 自动化渲染视图 158
14.10 小结 159
第 15 章 REST API和JSON 160
15.1 JSON和XML 161
15.2 我们的API 161
15.3 API错误报告 162
15.4 跨域资源共享 163
15.5 测试 164
15.6 使用Express提供API 166
15.7 小结 167
第 16 章 单页应用 168
16.1 Web应用开发简史 168
16.2 SPA技术选择 171
16.3 创建React应用 172
16.4 React基本概念 172
16.4.1 主页 174
16.4.2 路由 176
16.4.3 度假产品页——可视化设计 178
16.4.4 度假产品页——跟服务器端集成 179
16.4.5 向服务器发送信息 181
16.4.6 状态管理 184
16.4.7 部署选择 185
16.5 小结 185
第 17 章 静态内容 187
17.1 性能上的考量 188
17.2 内容分发网络(CDN) 189
17.3 为CDN而设计 189
17.3.1 服务器端渲染的网站 190
17.3.2 单页应用 190
17.4 缓存静态资源 191
17.5 变更静态内容 192
17.6 小结 193
第 18 章 安全 194
18.1 HTTPS 194
18.1.1 生成自己的证书 195
18.1.2 使用免费的证书中心 196
18.1.3 购买证书 196
18.1.4 为Express应用启用HTTPS 198
18.1.5 有关端口的说明 199
18.1.6 HTTPS与代理 200
18.2 跨站请求伪造 201
18.3 认证 202
18.3.1 认证与授权 202
18.3.2 使用密码认证的问题 203
18.3.3 第三方认证 203
18.3.4 在数据库里存储用户信息 204
18.3.5 认证与注册及用户体验 205
18.3.6 Passport 205
18.3.7 基于角色的授权 214
18.3.8 增加认证提供者 215
18.4 小结 216
第 19 章 集成第三方API 217
19.1 社交媒体 217
19.1.1 社交媒体插件与网站性能 217
19.1.2 搜索推文 218
19.1.3 展现推文 221
19.2 地理编码 223
19.2.1 使用谷歌生成地理编码 223
19.2.2 为你的数据做地理编码 225
19.2.3 显示地图 227
19.3 天气数据 228
19.4 小结 230
第 20 章 调试 231
20.1 调试原则第 一条 231
20.2 利用REPL和控制台 232
20.3 使用Node的内建调试器 233
20.4 Node调试客户端 233
20.5 调试异步函数 237
20.6 调试Express 237
20.7 小结 239
第 21 章 上线 240
21.1 域名注册与托管 240
21.1.1 域名系统 241
21.1.2 安全 241
21.1.3 域名 242
21.1.4 子域名 243
21.1.5 域名服务器 243
21.1.6 托管服务 245
21.1.7 部署 247
21.2 小结 250
第 22 章 维护 251
22.1 维护的原则 251
22.1.1 长远规划 251
22.1.2 使用源代码控制 253
22.1.3 使用问题跟踪系统 253
22.1.4 保持良好的“卫生习惯” 253
22.1.5 不要拖延 253
22.1.6 例行QA核查 254
22.1.7 监控分析 254
22.1.8 优化性能 255
22.1.9 优先跟踪潜在客户 255
22.1.10 避免“不可见”的故障 256
22.2 代码重用与重构 257
22.2.1 私有npm仓库 257
22.2.2 中间件 257
22.3 小结 259
第 23 章 更多资源 260
23.1 在线文档 260
23.2 期刊 261
23.3 Stack Overflow 261
23.4 对Express做贡献 263
23.5 小结 265
关于作者 266
关于封面 266
第 1 章 Express是什么 1
1.1 JavaScript的革命 1
1.2 Express简介 2
1.3 服务器端应用和客户端应用 4
1.4 Express简史 4
1.5 Node:另一种Web服务器 5
1.6 Node生态系统 6
1.7 开源协议 7
1.8 小结 8
第 2 章 Node的世界 9
2.1 获取Node 9
2.2 使用终端 10
2.3 编辑器 11
2.4 npm 11
2.5 用Node做一个简单的Web服务器 12
2.5.1 Hello world 13
2.5.2 事件驱动编程 14
2.5.3 路由 14
2.5.4 提供静态资源 15
2.6 进入Express 17
第 3 章 Express的方式 18
3.1 脚手架 18
3.2 草地鹨旅游网站 19
3.3 初始工作 19
3.4 视图与布局 22
3.5 静态文件与视图 25
3.6 视图中的动态内容 26
3.7 小结 26
第 4 章 项目整顿 27
4.1 项目文件与目录结构 27
4.2 实践 28
4.3 版本控制 28
4.4 在本书学习中如何使用Git 29
4.4.1 亲手录入 29
4.4.2 使用官方版本库 30
4.5 npm包 31
4.6 项目元数据 32
4.7 Node模块 32
4.8 小结 34
第 5 章 质量保证 35
5.1 QA计划 36
5.2 QA:是否值得 37
5.3 逻辑与表示 38
5.4 测试类型 38
5.5 QA技术 38
5.6 安装和配置Jest 39
5.7 单元测试 40
5.7.1 模拟 40
5.7.2 为可测试性而重构应用 40
5.7.3 写第 一个测试 41
5.7.4 测试维护 43
5.7.5 代码覆盖率 43
5.8 集成测试 44
5.9 Linting 47
5.10 持续集成 50
5.11 小结 51
第 6 章 request和response对象 52
6.1 URL的各个组成部分 52
6.2 HTTP请求方法 53
6.3 请求头 54
6.4 响应头 54
6.5 互联网媒体类型 55
6.6 请求的Body 55
6.7 request对象 55
6.8 response对象 57
6.9 深入源代码 59
6.10 按功能归纳 59
6.10.1 渲染内容 60
6.10.2 处理表单 61
6.10.3 API服务 62
6.11 小结 63
第 7 章 视图模板——使用Handlebars 64
7.1 何时使用模板 65
7.2 选择模板引擎 66
7.3 Pug:另辟蹊径 66
7.4 Handlebars基础 67
7.4.1 注释 69
7.4.2 代码块 69
7.4.3 服务器端模板 70
7.4.4 视图和布局 71
7.4.5 在Express中使用(或不使用)布局 73
7.4.6 sections 73
7.4.7 partial模板 74
7.4.8 完善模板 76
7.5 小结 77
第 8 章 表单处理 78
8.1 把客户端数据发送到服务器 78
8.2 HTML表单 78
8.3 表单的编码 79
8.4 处理表单的不同做法 80
8.5 使用Express处理表单 81
8.6 使用fetch发送表单数据 83
8.7 文件上传 85
8.8 提升文件上传的UI 88
8.9 小结 88
第 9 章 Cookie和Session 89
9.1 提取敏感信息 91
9.2 Express中的Cookie 91
9.3 查看Cookie 93
9.4 Session 93
9.4.1 内存存储 94
9.4.2 使用Session 95
9.5 使用Session实现flash消息 95
9.6 Session的用途 97
9.7 小结 97
第 10 章 中间件 98
10.1 基本原理 99
10.2 中间件示例 99
10.3 常用中间件 102
10.4 第三方中间件 104
10.5 小结 104
第 11 章 发送邮件 105
11.1 SMTP、MSA和MTA 105
11.2 接收邮件 106
11.3 邮件头 106
11.4 邮件格式 106
11.5 HTML邮件 107
11.6 Nodemailer 107
11.6.1 发送邮件 108
11.6.2 发送给多个收件人 109
11.7 群发邮件更好的选择 110
11.8 发送HTML邮件 110
11.8.1 HTML邮件中的图片 111
11.8.2 使用视图来发送HTML邮件 111
11.8.3 封装邮件功能 113
11.9 小结 114
第 12 章 考虑生产环境中的问题 115
12.1 运行环境 115
12.2 特定环境的配置 116
12.3 运行Node进程 117
12.4 网站的扩展 118
12.4.1 使用应用集群实现水平扩展 119
12.4.2 处理未捕获的异常 121
12.4.3 使用多台服务器完成水平扩展 123
12.5 监控网站的运行 123
12.6 压力测试 124
12.7 小结 125
第 13 章 持久化 126
13.1 文件系统持久化 126
13.2 云持久化 128
13.3 数据库持久化 129
13.3.1 关于性能的提醒 129
13.3.2 数据库层抽象 130
13.3.3 设置MongoDB 131
13.3.4 Mongoose 132
13.3.5 使用Mongoose连接数据库 132
13.3.6 创建模式和模型 133
13.3.7 使用种子数据初始化 134
13.3.8 获取数据 136
13.3.9 更新数据 138
13.3.10 PostgreSQL 139
13.3.11 新增数据 145
13.4 使用数据库存储Session 146
13.5 小结 148
第 14 章 路由 149
14.1 路由与SEO 151
14.2 子域名 151
14.3 路由处理函数也是中间件 152
14.4 路由路径和正则表达式 154
14.5 路由参数 154
14.6 组织路由 155
14.7 在模块中声明路由 156
14.8 合乎逻辑地分组路由 157
14.9 自动化渲染视图 158
14.10 小结 159
第 15 章 REST API和JSON 160
15.1 JSON和XML 161
15.2 我们的API 161
15.3 API错误报告 162
15.4 跨域资源共享 163
15.5 测试 164
15.6 使用Express提供API 166
15.7 小结 167
第 16 章 单页应用 168
16.1 Web应用开发简史 168
16.2 SPA技术选择 171
16.3 创建React应用 172
16.4 React基本概念 172
16.4.1 主页 174
16.4.2 路由 176
16.4.3 度假产品页——可视化设计 178
16.4.4 度假产品页——跟服务器端集成 179
16.4.5 向服务器发送信息 181
16.4.6 状态管理 184
16.4.7 部署选择 185
16.5 小结 185
第 17 章 静态内容 187
17.1 性能上的考量 188
17.2 内容分发网络(CDN) 189
17.3 为CDN而设计 189
17.3.1 服务器端渲染的网站 190
17.3.2 单页应用 190
17.4 缓存静态资源 191
17.5 变更静态内容 192
17.6 小结 193
第 18 章 安全 194
18.1 HTTPS 194
18.1.1 生成自己的证书 195
18.1.2 使用免费的证书中心 196
18.1.3 购买证书 196
18.1.4 为Express应用启用HTTPS 198
18.1.5 有关端口的说明 199
18.1.6 HTTPS与代理 200
18.2 跨站请求伪造 201
18.3 认证 202
18.3.1 认证与授权 202
18.3.2 使用密码认证的问题 203
18.3.3 第三方认证 203
18.3.4 在数据库里存储用户信息 204
18.3.5 认证与注册及用户体验 205
18.3.6 Passport 205
18.3.7 基于角色的授权 214
18.3.8 增加认证提供者 215
18.4 小结 216
第 19 章 集成第三方API 217
19.1 社交媒体 217
19.1.1 社交媒体插件与网站性能 217
19.1.2 搜索推文 218
19.1.3 展现推文 221
19.2 地理编码 223
19.2.1 使用谷歌生成地理编码 223
19.2.2 为你的数据做地理编码 225
19.2.3 显示地图 227
19.3 天气数据 228
19.4 小结 230
第 20 章 调试 231
20.1 调试原则第 一条 231
20.2 利用REPL和控制台 232
20.3 使用Node的内建调试器 233
20.4 Node调试客户端 233
20.5 调试异步函数 237
20.6 调试Express 237
20.7 小结 239
第 21 章 上线 240
21.1 域名注册与托管 240
21.1.1 域名系统 241
21.1.2 安全 241
21.1.3 域名 242
21.1.4 子域名 243
21.1.5 域名服务器 243
21.1.6 托管服务 245
21.1.7 部署 247
21.2 小结 250
第 22 章 维护 251
22.1 维护的原则 251
22.1.1 长远规划 251
22.1.2 使用源代码控制 253
22.1.3 使用问题跟踪系统 253
22.1.4 保持良好的“卫生习惯” 253
22.1.5 不要拖延 253
22.1.6 例行QA核查 254
22.1.7 监控分析 254
22.1.8 优化性能 255
22.1.9 优先跟踪潜在客户 255
22.1.10 避免“不可见”的故障 256
22.2 代码重用与重构 257
22.2.1 私有npm仓库 257
22.2.2 中间件 257
22.3 小结 259
第 23 章 更多资源 260
23.1 在线文档 260
23.2 期刊 261
23.3 Stack Overflow 261
23.4 对Express做贡献 263
23.5 小结 265
关于作者 266
关于封面 266
猜您喜欢