《Node.js实战》以完成一个相近Dribble的运用特征分析,将Node.js的技术性点围绕前后左右端开发,融合Egg.js、Vue.js、Docker完成持续集成、不断布署的前后端分离运用。这书不局限于对Egg.js、Vue.js、Docker的解读,书里还共享公司中务必要明白的开发基本常识,例如怎样对接服务(支付宝付款对接)、开放服务(根据OAuth开放API给第三方)。
目录
- 第1章 Node.js的优势 1
- 1.1 为什么是JavaScript语言 1
- 1.2 为什么经常说Node.js不适合大型应用 3
- 第2章 Egg.js框架核心原理与实现 6
- 2.1 异步基础 6
- 2.2 Koa.js基础知识 15
- 2.2.1 Koa.js 中间件核心代码 16
- 2.2.2 Koa.js插件 18
- 2.3 Egg.js 基础知识 21
- 2.3.1 实现 egg-core 22
- 2.3.2 实现 egg-init 26
- 2.3.3 实现egg-cluster 30
- 2.4 Egg.js插件 33
- 2.4.1 egg-socket.io 33
- 2.4.2 原理解读 39
- 2.5 制作一个Egg.js插件 43
- 第3章 构建后端API服务 52
- 3.1 安装相关组件 52
- 3.2 发布一个插件 59
- 3.2.1 创建Flash插件 59
- 3.2.2 使用egg-msg-flash 72
- 3.2.3 使用egg-y-validator 73
- 3.3 规范化 73
- 3.3.1 添加新的scripts支持ESLint自修复 74
- 3.3.2 添加插件支持 74
- 3.3.3 prettier格式化工具 76
- 3.3.4 同步代码编辑器配置 76
- 3.4 第一个JSON请求 77
- 3.4.1 给全局添加一些方法 77
- 3.4.2 全局化一些东西 84
- 3.4.3 自动路由 86
- 3.4.4 创建 PostMan 测试 88
- 3.5 注册服务 91
- 3.5.1 Invitation模型 91
- 3.5.2 注释 93
- 3.5.3 User模型 96
- 3.5.4 修改控制器 97
- 3.5.5 添加验证逻辑 98
- 3.5.6 帮助方法 99
- 3.5.7 User服务 101
- 3.5.8 PostMan测试 103
- 3.6 登录服务 104
- 3.7 邮件与调试 115
- 3.7.1 理解发送邮件的原理 115
- 3.7.2 安装邮件插件 115
- 3.7.3 环境与调试 116
- 3.7.4 全局调试 118
- 3.7.5 VSCode全局调试 121
- 3.7.6 发送验证邮件 122
- 3.7.7 添加逻辑 125
- 3.7.8 验证 135
- 3.8 构建 RESTful API 137
- 3.8.1 什么是RESTful API 137
- 3.8.2 创建RESTController基础类便于继承 138
- 3.8.3 测试Images RESTful API 141
- 3.8.4 构建后台的REST路由 143
- 3.8.5 构建控制器 145
- 3.8.6 测试后台路由 148
- 3.8.7 关于验证 149
- 3.9 安全地开放API 151
- 3.10 实现OAuth接口 158
- 3.10.1 实现授权码官方文档所要求的接口 158
- 3.10.2 实现刷新验证码接口 167
- 3.10.3 实现 authenticate 所需接口 169
- 3.11 完善OAuth与测试 170
- 3.11.1 发放Token 170
- 3.11.2 新建客户端项目 172
- 3.11.3 测试OAuth 173
- 3.12 支付宝支付 176
- 3.12.1 什么是非对称加密 176
- 3.12.2 注册支付宝 176
- 3.12.3 生成非对称秘钥 176
- 3.12.4 实现 177
- 3.12.5 添加路由 180
- 3.12.6 内网穿透 180
- 3.12.7 测试 182
- 3.13 社会化登录 183
- 第4章 构建后台管理页面 189
- 4.1 后端开发 189
- 4.1.1 安装VSCode插件 189
- 4.1.2 获取脚手架 189
- 4.1.3 安装依赖 190
- 4.1.4 修改代码 190
- 4.1.5 跨域请求 191
- 4.1.6 修改后端代码支持跨域 192
- 4.1.7 在前端添加存储 198
- 4.2 模型列表 200
- 4.3 添加数据 209
- 4.4 修改逻辑 220
- 第5章 前端界面设计与实现 228
- 5.1 搭建前端开发环境 228
- 5.1.1 开始 228
- 5.1.2 创建Header头部 229
- 5.1.3 将变量提取出来 234
- 5.1.4 添加路径重写 235
- 5.2 AppFooter组件 237
- 5.2.1 做一些配置 237
- 5.2.2 创建src/components/layouts/AppFooter.vue 238
- 5.2.3 网络识别信息 247
- 5.2.4 修改一下全局样式 247
- 5.2.5 查看页面 248
- 5.2.6 提升编译速度 248
- 5.3 首页 249
- 5.4 替换成为真实数据 269
- 5.4.1 完成后端Image API 269
- 5.4.2 修改首页的代码 271
- 5.4.3 添加API逻辑 276
- 5.4.4 效果 278
- 5.5 图片详情页 278
- 5.5.1 创建路由 279
- 5.5.2 安装依赖 279
- 5.5.3 创建视图 279
- 5.5.4 添加插件 285
- 5.5.5 创建评论组件 286
- 5.5.6 测试 290
- 5.5.7 关于服务端访问DOM 290
- 5.6 注册页面 294
- 5.6.1 注册路由 294
- 5.6.2 新建signup.vue页面 295
- 5.6.3 增强错误提示 299
- 5.7 登录页面 299
- 5.8 完善详情与评论 310
- 5.9 个人中心 321
- 5.10 创建图片 336
- 5.10.1 创建又拍云存储 336
- 5.10.2 添加后端API 338
- 5.10.3 前端界面 340
- 5.10.4 测试 348
- 5.11 团队 349
- 5.11.1 功能是如何工作的 350
- 5.11.2 数据库 350
- 5.11.3 后端 356
- 5.11.4 前端 363
- 5.11.5 测试 372
- 第6章 部署与运维 374
- 6.1 认识Docker 374
- 6.1.1 解决了什么问题 374
- 6.1.2 使用Docker的流程 375
- 6.1.3 安装Docker 378
- 6.1.4 使用加速器 378
- 6.1.5 下载一个基础镜像 379
- 6.1.6 hello world 379
- 6.2 手动构建镜像 380
- 6.3 编写Dockerfile文件 384
- 6.4 Docker Compose 387
- 6.4.1 安装docker-compose 387
- 6.4.2 命令行接口 388
- 6.4.3 Egg.js简单实例 389
- 6.4.4 增加服务 391
- 6.5 集群 396
- 6.5.1 Docker集群 396
- 6.5.2 集群初始化 396
- 6.5.3 实例 397
- 6.6 持续部署 400
- 6.6.1 部署主机免密码登录 400
- 6.6.2 客户端钩子 401
- 6.6.3 使用服务端钩子进行部署 403
- 6.6.4 使用 shipit 404
- 6.6.5 使用 Ansible 部署 406
- 6.7 持续集成 409
- 6.8 Kubernetes集群 423
- 6.8.1 简单使用 423
- 6.8.2 如何创建应用 425
- 6.8.3 命令行管理 430
- 6.8.4 通过UI创建应用 433
- 6.8.5 添加持续集成 439
- 6.8.6 固定IP地址 441
- 6.8.7 部署前端 442
- 第7章 性能分析与优化 448
- 7.1 服务器性能分析与测试 448
- 7.2 用户追踪 458
- 7.2.1 百度分析 458
- 7.2.2 Google分析 460
- 7.2.3 其他付费服务 461
- 7.3 前端性能分析与优化 461
- 7.3.1 lighthouse 461
- 7.3.2 sonarwhal 462
- 7.3.3 图片压缩 464
- 7.3.4 错误上报 465
- 7.3.5 接收用户反馈 466