官网
目录结构
|-- .env # 环境变量 - 默认使用
|-- .env.development # 环境变量 - @nestjs/config配置使用
|-- nest-cli.json
|-- package.json
|-- src
| |-- app.controller.ts # app根模块 - 控制器
| |-- app.module.ts # app根模块
| |-- app.service.ts # app根模块 - 服务
| |-- main.ts # 应用程序入口
| |-- cats # cats模块
| | |-- cats.controller.ts
| | |-- cats.module.ts
| | |-- cats.service.ts
| | |-- dto # DTO(数据传输对象)类 - 数据校验
| | | |-- create-cat.dto.ts
| | | |-- find-cat.dto.ts
| | | |-- update-cat.dto.ts
| | |-- entities # 实体类 - 数据库映射
| | | |-- cat.entity.ts
| |-- common # 通用文件
| | |-- filters # 过滤器 - 错误响应
| | | |-- http-exception.filter.ts
| | |-- guard # 卫士 - 角色鉴权
| | | |-- auth.guard.ts
| | | |-- global.guard.ts
| | |-- interceptor #拦截器 - 成功响应
| | | |-- transform.interceptor.ts
| | |-- middleware # 中间件 - 日志
| | | |-- logger.middleware.ts
| | | |-- logger2.middleware.ts
| | |-- pipe # 管道 - 数据类型校验
| | |-- global.pipe.ts
| |-- user # user模块
| |-- user.controller.ts
| |-- user.module.ts
| |-- user.service.ts
| |-- dto
| | |-- create-user.dto.ts
| | |-- login-user.dto.ts
| |-- entity
| |-- user.entity.ts
文件含义:
- main.ts 入口文件
- app.xxx.ts 根模块(module + controller + service)
- xxx 子模块
- module 模块,集合controller + service + entity,导入导出
- controller 控制器:处理请求 + 返回响应
- service 提供者:负责逻辑处理 + 数据层交互
- dto dto数据传输对象类 - 数据校验
- entity 实体类 - 数据库映射
- common通用文件
- middleware 中间件
- guard 卫士
- interceptor 拦截器
- pipe 管道
- filter 异常过滤器
介绍
基于 Node.js 服务器端应用开发框架,类似(express、koa、nest、egg、midway)
特点:
- 支持 Typescript/javascript
- 支持 OOP (面向对象编程)、FP (函数式编程)、FRP (函数响应式编程)
- 底层处理HTTP,采用Express(默认)/Fastify
安装依赖
安装脚手架
npm i -g @nestjs/cli
创建项目
nest new project-name
生成模块
nest generate module xxx
必要依赖:
process环境变量配置
npm i -S @nestjs/config
DTO参数校验
npm i -S class-validator class-transformer
mysql数据库
npm i -S @nestjs/typeorm typeorm mysql2
bcryptjs 加密
npm i -S bcryptjs
jwt认证
npm i -S @nestjs/jwt
其他依赖:
swagger接口文档
npm i -S @nestjs/swagger swagger-ui-express
socket消息
npm i -S @nestjs/websockets @nestjs/platform-socket.io socket.io
其他:
中文文档: nestjs.bootcss.com/index.html
Nest通关秘籍 juejin.cn/book/722698…