zhangyz11 / nestjs-starter

nestjs 快速开始框架

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nest快速开发框架

集成了如下技术:

  • ORM:typeorm
  • 认证:passport
  • 文档:swagger
  • 日志工具:nest-pino

开发之前请详细阅读项目中的所有文档(各个目录下的README.md)文件,以及熟悉相关技术中提到的所有技术。

开发

git clone https://github.com/YES-Lee/nestjs-starter.git # 拉取代码
cd nestjs-starter
yarn install
yarn start:dev

swagger地址:http://localhost:3001/swagger

项目结构

src
├─ config // 配置模块
├─ database // 数据库模块
│  └─ entities // typeorm实体类
├─ decorators // 自定义装饰器目录
├─ dto // restful 接口模型目录
├─ enums // 枚举目录
├─ filters // error filters
├─ interceptors // interceptors
├─ pipes // pipes
└─ modules // 业务逻辑模块目录,所有业务相关逻辑都放到该目录对应的模块

所有业务相关的逻辑都应存放于modules目录下,接口按照功能模块划分,通常以表为参考,即一张表(除关系表外)对应一个功能模块。例如:用户相关的功能,应该全部位于/modules/user/目录下。

接口规范(restful api)

接口返回格式

接口返回格式统一为

{
  error_code: number; // 错误码,只有异常时才会返回
  error_message: string; // 错误信息,只有异常时才会返回
  data: any;
  timestamp: any; // 时间戳
}

相关工具

src/dto/support/ApiResponse.ts导出的类包含了API请求结果相关的工厂方法,比如

// 请求成功
const result = ApiResponse.success(data)

// 请求失败
const result = ApiResponse.error(10001, '请求失败')

部署

部署app方式有多种,这里提供一个pm2管理方式,有三种部署方式,根据不同场景选择使用

编译部署

  1. 编译:npm run build
  2. 拷贝package.json, pm2.config.jsdist目录(需要修改pm2.config.js文件
  3. dist目录上传到服务器
  4. dist目录执行npm install --production
  5. 启动:pm2 pm2.config.js

仓库部署

  1. 在服务器拉取仓库
  2. npm install
  3. npm run build,
  4. pm2 pm2.config.js

docker部署

相关指令

创建模块

nest g module modules/{your_module_name}

创建服务

nest g service modules/{your_service_name}

创建控制器

nest g controller modules/{your_controller_name}

创建resolver

nest g resolver modules/{your_resolver_name}

相关技术

About

nestjs 快速开始框架


Languages

Language:TypeScript 97.9%Language:JavaScript 2.1%