# node-nest
该模板基于 nest7 的工程模板,内部已经集成了数据库连接、error 处理、动态配置、数据返回包装、生产环境最小化打包( 避免生产环境中 npm install 后占用大量空间 )、eslint等。通过 t-cli 快速搭建 nest 开发环境,可以避免原生 nest-cli创建工程后繁琐的 配置流程。
# 目录说明
├── common // 公共模块
| ├── error // 错误封装
| | |—— exceptions // Exception 定义
| | |—— filters // 错误过滤器 包括 http ws Rpc
| | |—— pipe // 管道目录
| |—— result // 返回数据包装
| |—— shared
| | |—— decorators // 注解目录
| | |—— guards // 部分权限目录(按需实现)
| | |—— interceptors // 拦截器目录
| | |—— middleware // 中间建目录
| | |—— strategies // Strategy 封装
├── config // 系统配置
| ├── ApiErrorCodeEnum.ts // 系统错误码定义
| ├── application.yaml // 系统配置文件
| ├── CommonConfigInterface.ts // 系统配置字段定义
| ├── constant.ts // 系统常量定义
├── controller // API 定义目录
| ├── HelloWorldController.ts
├── service // Service 定义
| ├── HelloWorldService.ts
├── model
| ├── DTO // 请求参数类型校验类定义目录
| ├── entity // 数据库实体定义
├── module // 哥模块定义目录
| ├── HelloWorldModule.ts
├── utils // 工具定义目录
| ├── RedisCacheService.ts // redis 工具封装
| ├── .....
├── AppModule.ts // 系统模块入口
├── MainModule.ts // 主模块定义,typeorm、reid、kakfa、各个子模块定义
├── main.ts // 系统入口文件
# npm 脚本说明
# npm run start:dev
该脚本用于在开发环境以 nodemon 方式启动系统。
# npm run dev
该脚本用于在开发环境中以 nest 原生的方式启动工程,但有可能有错误,需要手动将 application.yaml 复制到 dist/config 目录下。
系统中采用 application.yaml 配置项目,nest 在启动时会先生成 dist 目录,application.yaml 配置文件并为复制到 dist 目录。
# npm run build
该脚本是用 nest 原生方式打包工程。
# npm run build:min
该脚本是用最小化打包 nest 工程,该脚本会将整个工程打包成单文件,这种打包方式对 docker 部署方式来说是及其友好的。
# npm run start:debug
该脚本用于断点调试系统。
#
个人推荐开发环境采用 npm run start:dev + pm run start:debug
方式开发,打包时尽量采用 npm run build:min
最小化打包。
# 说明
该工程模板后续会继续完善,包括 http 模板、消息队列(kafka、rabbitMqQ)等模块。出现问题也会继续跟进完善。