猜你喜欢
Node.js实战:使用Egg.js+Vue.js+Docker构建渐进式、可持续集成与交付应用

Node.js实战:使用Egg.js+Vue.js+Docker构建渐进式、可持续集成与交付应用

书籍作者:陈微明 ISBN:9787121349126
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:4617
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
本书以实现一个类似Dribble的应用为例,将Node.js的技术点贯穿前后端的开发,整合Egg.js、Vue.js、Docker实现持续集成、持续部署的前后端分离应用。本书不局限于对Egg.js、Vue.js、Docker的讲解,书中还分享企业中必须要懂得的开发常识,比如如何对接服务、开放服务(通过OAuth开放API给第三方)。
前言
前言
  为什么要写这本书
  前端生态圈的繁荣离不开Node.js。Node.js在制作工具方面的表现极其优秀,在开发Web方面也有很多历史积累。Node.js领域的图书很多,比如侧重Node.js语法、核心本身,或者侧重调试,而对于Web开发,提及OAuth、JWT原理的并不多,涉及前端范畴的在线支付、持续集成、Docker等内容也较少。
  笔者比较喜欢体验各种语言,在大学的时候学习和体验了各种语言,包括C、C++、C#、Java、Python、Ruby、PHP等,在笔者的网站nodelover.me你还会发现有Go、Rust的免费视频教程。笔者把大部分精力都花在了JavaScript上面,后来才有了这本书。
  Node.js底层还有许多内容笔者也没有弄懂,不过80%的业务场景,只需要20%的技术能力就可以解决。笔者跟读者一样,都是一个学习者。笔者希望更多的人学习Node.js、使用Node.js,使它更加强大。
  本书适合的对象
  有JavaScript基础的读者;
  想要体验完整开发流程的读者;
  想要精通Node.js Web开发的读者;
  对Koa.js和Egg.js实现原理感兴趣的读者。
  本书也可以作为Node.js的入门教程,但是需要你有一定的自学能力,对于一些基础的知识,笔者都会给出视频链接,读者可以自行学习。
  本书结构
  第1章:主要叙述了Node.js的历史,以及为什么要使用它。
  第2章:讲解JavaScript的异步、函数式编程、Koa.js实现原理,以及Egg.js是如何在Koa.js上面进行扩展的、Egg.js是怎样的架构、如何开发出一个Egg.js插件并发布到npmjs。
  第3章:使用Egg.js对后端服务进行开发,设计数据库表,构建模型关系映射,建立模型之间的关系。构建安全的API,使用JWT构建登录,使用OAuth给第三方开发者开发API。
  第4章:通过Vue.js构建一个简易的后台,通过百行代码实现从后台读取数据库关系,使用Vue.js动态地生成对应模型的表单,自动增删改查。
  第5章:使用TypeScript与Vue.js搭建SSR服务端渲染环境,构建友好的SEO,开发前端显示界面。
  第6章:使用Docker部署我们的应用,讲解如何编写Dockerfile、docker-compose.yml,如何实现通过修改一行代码提交修改,然后自动部署服务。
  第7章:性能分析与优化,包括服务器性能优化、用户追踪、前端性能优化。
  勘误与支持
  由于部分npm组件API的变动与Node.js的发展,以及笔者的疏忽、水平有限,书中总会有一些不足之处,还望读者批评指正,可以通过以下的方式与笔者联系。
  GitHub issues:https://github.com/MiYogurt/nodejs-shizhan
  QQ群:325568224
  致谢
  首先要感谢的是曾经努力的自己,对他说一句“你真棒”。其次感谢父母对我的支持,假如没有父母的支持,可能我就不会有那么多的精力来做这件事情。感谢陈晓猛编辑的耐心指导、审稿、修改,在他的修改下,使得本书有更好的阅读体验。最后感谢的是Node.js社区的各位开发者,我们都是站在巨人的肩膀上,感谢巨人们。
目录

第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

标签
eggjs