目录
common目录为config 和 工具链相关,后期可通过脚手架内置。
filter为过滤器,目前有一个全局处理httpCode和全局报错的过滤器,业务可自行扩展。
interceptor为拦截器,目前有个全局超时拦截,和统一返回格式处理
middlewares为中间件,目前有一个cat中间件以及异步线程中间件(目前挂载工具)
modules为业务开发模块(业务线主要工作模块)
pipes为管道,目前有一个根据dto统一处理校验规则的管道
utils为工具方法,目前提供一个获取日期的方法,此处可与工具库进行关联
main.ts 为主入口,添加了一些必要的全局中间件
数据流
中间件
业务方面:
cat中间件
工具中间件
性能方面
compression 压缩
安全
helmet 防XSS & CSRF
服务稳定性
rateLimit 限流
bodyParser 参数做了数据大小限制
Catch (global-exception.filter 模拟了catch中间件功能)
orm
typeOrm替换原来的mongoose,核心优势支撑多种数据库
文档:typeorm.bootcss.com/decorator-r…
能力
统一处理请求上报cat服务
自动区分环境,业务线不需要关心
全局catch处理
会统一处理业务code码和代码报错,不会导致服务不可用,同时返回当前请求的tranceId,方便业务线查询
统一格式返回
业务线只需要正常return结果,除了业务code情况,无需关系报错和服务导致的异常情况。
全局校验管道
会根据模型自动告诉哪些字段不对
自动生成文档
提供mock能力:blog.csdn.net/gwdgwd123/a…
随时可用的工具箱
自动关联zipkin,同时可以拿一些必要的方法。
tranceId
通过网关拿tranceId,提供方法获取
umeLog
自动打到公司日志平台,支持生产、灰度、测试
cat追加日志
zipkin包装器
上次问题
离群摘除
provider:通过cat报警手动摘除
consumer:目前通过订阅动态配置,支持动态摘除