目录

本书源代码


第1章了解Web框架(51min)

1.1Web框架

1.1.1Web框架的应用领域

1.1.2主流编程语言的Web框架

1.1.3需要了解的相关知识

1.2TypeSpeed 

1.2.1TypeSpeed框架的特性

1.2.2学习TypeSpeed的开发过程

1.3准备源代码

1.3.1安装环境

1.3.2安装编码工具

1.3.3获取源代码

1.4从零实现最简Web框架

1.4.1显示Hello World页面

1.4.2增加页面

1.4.3用面向对象方法组织页面代码

1.4.4增加数据库查询

1.4.5单例模式实现数据库链接

1.4.6Web框架的主要组成部分 

第2章构建框架核心(92min)

2.1TypeScript装饰器

2.1.1装饰器的用途

2.1.2如何设计装饰器

2.1.3装饰器执行原理

2.1.4定时任务装饰器开发

2.1.5小结

2.2构建对象管理机制

2.2.1对象管理

2.2.2设计对象管理机制

2.2.3依赖注入

2.2.4对象工厂

2.2.5项目初始结构

2.2.6实现日志功能

2.2.7入口文件机制

2.2.8小结






2.3系统配置管理

2.3.1约定优于配置

2.3.2设计程序配置规范

2.3.3配置的集成

2.3.4开发配置装饰器

2.3.5小结

第3章Web服务系统(184min)

3.1集成Web服务框架

3.1.1ExpressJS

3.1.2中间件机制

3.1.3应用程序入口

3.1.4集成ExpressJS

3.1.5小结

3.2路由装饰器

3.2.1简单的路由实现

3.2.2路径功能详解

3.2.3开发路由装饰器

3.2.4测试路由装饰器

3.2.5优化路由装饰器

3.2.6小结

3.3路由切面功能

3.3.1面向切面编程

3.3.2设计切面程序功能

3.3.3@before切面装饰器

3.3.4@after切面装饰器

3.3.5小结

3.4请求参数装饰器

3.4.1设计请求参数装饰器

3.4.2请求参数装饰器的实现

3.4.3用toString()优化装饰器

3.4.4小结

3.5响应处理与模板引擎

3.5.1MVC设计模式

3.5.2JSON格式输出

3.5.3模板引擎是什么

3.5.4ExpressJS的模板引擎

3.5.5模板引擎的选型

3.5.6集成多模板引擎库

3.5.7小结

3.6使用中间件增强框架功能

3.6.1静态资源服务

3.6.2站点图标功能

3.6.3传输压缩实现

3.6.4Cookie

3.6.5Session

3.6.6小结

3.7文件上传

3.7.1文件上传原理

3.7.2使用文件上传库

3.7.3实现文件上传装饰器

3.7.4小结

3.8Web服务鉴权

3.8.1实现基本访问认证

3.8.2实现验证装饰器

3.8.3拦截器

3.8.4开发全局拦截器机制

3.8.5实现JWT全局拦截器

3.8.6小结

3.9服务器端错误输出

3.9.1捕捉常见错误

3.9.2错误日志输出

3.9.3美化内置错误页面

3.9.4小结

第4章数据库开发(184min)

4.1数据库开发准备

4.1.1安装Docker Desktop

4.1.2安装MySQL

4.1.3连接MySQL

4.1.4创建测试数据库

4.1.5创建测试表

4.2装饰器风格的SQL方法

4.2.1SQL装饰器的设计

4.2.2初步实现@Insert装饰器

4.2.3初步实现@Update和@Delete

4.2.4@Select查询实现

4.2.5小结

4.3参数绑定

4.3.1SQL注入攻击示例

4.3.2SQL参数装饰器

4.3.3优化查询装饰器

4.3.4小结

4.4查询结果的处理

4.4.1数据类

4.4.2查询结果装饰器

4.4.3装饰器配合使用

4.4.4小结

4.5内置查询缓存

4.5.1缓存的作用

4.5.2内置缓存功能

4.5.3缓存装饰器

4.5.4优化缓存更新

4.5.5小结

4.6模型风格的数据操作

4.6.1统一底层数据库执行机制

4.6.2设计Model类型

4.6.3开发模型查询方法

4.6.4小结

4.7自定义查询语法

4.7.1设计自定义查询语法

4.7.2开发比较条件语法

4.7.3开发模糊查询和 OR 语法

4.7.4优化查询方法

4.7.5便捷查询方法

4.7.6小结

4.8增、删、改的优化

4.8.1增、删、改方法

4.8.2简化查询方法

4.8.3简化修改方法

4.8.4小结

4.9内置分页

4.9.1页码计算

4.9.2实现查询内置分页

4.9.3小结

4.10数据源读写分离

4.10.1数据源

4.10.2主从数据库架构

4.10.3设计多数据源机制

4.10.4内置多数据源实现

4.10.5测试多数据源

4.10.6小结

第5章常用服务(198min)

5.1消息队列功能

5.1.1RabbitMQ

5.1.2安装RabbitMQ

5.1.3创建交换机和队列

5.1.4使用amqplib库

5.1.5监听消息装饰器

5.1.6注入发送消息方法

5.1.7小结

5.2Socket.IO 即时通信

5.2.1Socket.IO

5.2.2即时通信

5.2.3使用Socket.IO

5.2.4与Web服务共用端口

5.2.5开发Socket.IO装饰器

5.2.6测试即时通信功能

5.2.7小结

5.3Redis 数据库

5.3.1安装Redis服务

5.3.2集成Redis 

5.3.3发布订阅功能

5.3.4优化排行榜逻辑

5.3.5Session支持Redis 存储

5.3.6小结

5.4命令行脚手架功能

5.4.1脚手架是什么

5.4.2开发命令行程序

5.4.3发布命令

5.4.4小结

5.5支持Swagger平台

5.5.1Swagger接口交互平台

5.5.2外部项目

5.5.3设计TypeSpeedSwagger

5.5.4实现集成Swagger中间件

5.5.5替换装饰器收集接口信息

5.5.6小结

5.6自动化文档

5.6.1JSDoc文档和工具

5.6.2Reflect Metadata运行原理

5.6.3进阶反射库

5.6.4实现中间件配置

5.6.5获取对象详细信息

5.6.6小结

第6章项目测试与发布(63min)

6.1开源项目的测试

6.1.1单元测试

6.1.2Mocha测试框架

6.1.3调整框架配合测试

6.1.4编写测试集

6.1.5测试结果

6.1.6小结

6.2测试覆盖率

6.2.1测试覆盖率

6.2.2持续集成

6.2.3GitHub Action

6.2.4测试覆盖率报告

6.2.5小结

6.3NPM发布

6.3.1框架目录结构

6.3.2导出类型定义

6.3.3框架配置

6.3.4发布项目