2018 年, Nodejs 版本如何跟进,Promise 要不要用,Async Function 如果使用,通过 Babel 如何编译,代码风格总是没有事实标准,激进的换成 Standard 会不会更清爽。
- 1-1 koa2导学
- 1-2 安装跟进最新的 Node.js 版本
- 1-3 毫不犹豫的使用 Promise(callback到Promise再到Promisify)
- 1-4 使用 Babel 编译 ES7 Async Function
ES6/7/8 时代到来,重要的语法特性,如 Generator Function 与迭代器的关系,如何通过 co 来执行 Promise 和 Generator Function,箭头函数的常见用法,import 和 export 如果使用 Babel 如何进行编译,如何在生产环境进行编译构建。
- 2-1 生成器函数 Generator Function
- 2-2 co 库执行 Promise 和 Generator Function
- 2-3 箭头函数 Arrow Function
- 2-4 异步函数 Async Function 统一世界
- 2-5 借助 Babel 编译 import 与 export
- 2-6 生产环境使用 Babel 支持 ES6-7
通过一个个文件,一个模块一个模块的分解,从源代码里调出核心的代码,一层层进入去了解 koa 的核心对象、服务类、上下文对象、请求与相应对象他们的代码架构和角色构成,同时去研究 koa 核心知识点 - 中间件机制以及借助 koa-compose 而实现的魔法递归流转过程,最后学习会话和 cookie 的基础知识。...
- 3-1 Koa 核心对象
- 3-2 Web 服务类 Application
- 3-3 HTTP 上下文对象 context(ctx)
- 3-4 HTTP 请求对象 request(req)
- 3-5 HTTP 响应对象 response(res)
- 3-6 Koa 中间件 middlewares
- 3-7 纯函数-尾递归与魔法大师 koa-compose
- 3-8 session-cookie-路由与 Koa 小结
对比 Koa 的两个重大版本,也就是 Koa1 和 Koa2,两代版本的区别,以及其他框架如 Express 框架的架构区别和语法、用法区别。
- 4-1 Koa2 与 Koa1 的用法对比
- 4-2 Koa 与 Express 的 API 能力对比
- 4-3 Koa 与 Express 的 中间件执行模型对比
- 4-4 Koa2 Express 选型及小结(含奖励哦)
从 new Koa() 开始起一个干净的 Server 服务,来了解 Koa 简洁的请求处理流程,到可以返回一个静态 HTML 页面,到可以集成模板引擎返回动态内容,到 Bootstrap 搭建传统网站页面来学习项目 从 0 到 1 的搭建流程。
- 5-1 设计与分析
- 5-2 6 行代码撸一个服务器推到 Git 仓库
- 5-3 服务器返回一个静态 HTML 页面
- 5-4 增加 Pug ejs 动态模板引擎渲染
- 5-5 集成模板引擎到 Koa 搭建初始模板目录
- 5-6 借助 BootStrap 4-x 搭建网站首页
- 5-7 关于构建工具 Parcel 解决的问题
- 5-8 利用 Parcel 打包普通网站以及 React 架构网站的资源方案
学习如何在 Koa 里面起多个子进程,如何子进程中跑重的脚本任务,比如通过 Google Puppeteer 无头浏览器来模拟真实用户访问,来爬取到设置过反爬机制的网页文本,以及如何通过 Koa 发起服务器端的 HTTP 请求,进而拿到图片和视频地址,最终自动的上传到七牛图床上托管以加速访问,节省带宽。...
- 6-1 设计与分析
- 6-2 利用 puppeteer 爬取和分析电影列表
- 6-3 child_process fork 子进程来运行爬虫脚本
- 6-4 服务器端通过 request 向豆瓣 API 请求详细数据
- 6-5 Scott 与妹子合租引发的同步异步与阻塞
- 6-6 puppeteer 深度爬取封面图和视频地址
- 6-7 上传线上封面图和视频搬砖到七牛云图床上
本篇是课程精心赠送之高难度拔高彩蛋篇,意在帮助有基础的同学进一步加深对 Node.js 底层的组成,底层的 Libuv 事件循环阶段,microtasks 事件优先级,结合大量代码案例来掌握 Node.js 核心知识 - 可以横向扩展的多进程单进程无阻塞事件驱动模型。...
- 7-1 Nodejs 在本期课程彩蛋知识点
- 7-2 从异步非阻塞的代码案例切入事件循环
- 7-3 从 libuv 源码来理解 Event Loop 的 6 个阶段
- 7-4 设计一个测试用例来验证自己对事件循环的理解
- 7-5 单线程多进程模型 事件循环及进程通信
在 Mac/Windows/Ubuntu/Centos 上安装 MongoDB 数据库,并且在 Koa 集成 Mongoose 中间件后,为电影,分类设计 schema 来创建数据模型,以导入之前爬到的预告片数据。
- 8-1 Windows Mac CentOS Ubuntu 安装 MongoDB
- 8-2 Koa2 中利用 Mongoose 连接数据库
- 8-3 MongoDB 和 Mongoose 关于 collection schema model entity 的基本概念
- 8-4 利用 schema model 创建电影的数据模型
- 8-5 创建用户数据模型并实现加盐加密和敏感登录控制
- 8-6 创建电影分类以及初始化所有 schema
- 8-7 向数据库导入爬到的电影数据
- 8-8 图床资源同步以及管理换账号初始化
通过在 Koa 中集成多个中间件,同时封装基于装饰器的路由组件,来提供更易于拓展的路由层级,并且实现控制器与数据服务层的分离,对外提供 API 接口服务。
- 9-1 [第 2 次迭代] 快速实现一个最小统计的 API 服务器
- 9-2 [第 2 次迭代] 了解 Koa-router 的基本能力以及取舍套路
- 9-3 [第 2 次迭代] 通过装饰器来把路由进行拆分和集成
- 9-4 [第 2 次迭代] 结合 Decorator 对 koa-router 进行抽象封装支持路由空间分离
- 9-5 [第 2 次迭代] 分拆项目服务层与路由层对外暴露 API 服务
把 AntDesign 集成到项目中,并且把 Parcel 也集成到 Koa 的本地开发环境中,同时配置构建中间层来做到本地开发与生产环境的构建分离,让整个前后端的项目贯穿起来
- 10-1 [第 3 次迭代] 配置 Babel Postcss 来支持 Parcel 的打包构建
- 10-2 [第 3 次迭代] 在 Koa 中集成 Parcel 开发与生产环境的构建中间件
- 10-3 [第 3 次迭代] 结合 react-router-dom 与 import 来动态加载前端路由业务组件
- 10-4 [第 3 次迭代] 实现网站的布局模板组件和导航菜单
以底层的 Koa 为服务底层,在上层 AntDesign 项目中开发首页、详情页、播放功能、推荐功能、筛选功能,以及路由分拆来实现网站的基础页面。
- 11-1 [第 4 次迭代] 基于 axios 封装可以控制 loading 前置状态的请求组件
- 11-2 [第 4 次迭代] 开发网站首页电影列表
- 11-3 [第 4 次迭代] 抽象网站首页电影卡片内容组件
- 11-4 [第 4 次迭代] 为电影卡片增加视频播放及切换功能
- 11-5 [第 4 次迭代] 开发电影详情页
实现网站的后台用户登录校验加盐与列表管理功能,同时维持用户的登录状态。
- 12-1 [第 5 次迭代] 实现网站的后台登录页面及密码校验
- 12-2 [第 5 次迭代] 实现网站后台管理列表页
- 12-3 [第 5 次迭代] 增加登录权限以及参数验证
- 12-4 [第 5 次迭代] 增加用户会话保持与数据删除功能
详细讲解服务器部署与发布的相关内容。
- 13-1 简单配置本地与服务器的 PM2 环境及发布脚本
- 13-2 服务器第一次部署与发布
对 Koa2 及 Node.js 核心知识进行回顾总结,并且对 Koa3 进行展望,整理整个项目的应用场景与上线维护注意事项。
- 14-1 Koa2 课程回顾总结