Nestjs-学习笔记
nodejsserver architecture
Nestjs
作为一个在nodejs框架(express
、fastify
、...)之上的抽象层提供了可扩展、可测试、多样性(rest api
、microservices
、web sockets
、graphql
)、渐进式的架构解决方案,可以满足各种后端的需求场景
基础
CLI
nest cli
提供了系列模板代码创建以及启动、打包命令
shell
Controller
controller
作为mvc模型中逻辑的最小单元nest
为此提供了很多便利修饰符以供使用
ts
Providers
provider(services、repositories、helpers、etc)
作为controller
的依赖注入到其构造函数中用以拆分业务逻辑并在内部使用
controller.ts
ts
things.entity.ts
ts
things.service.ts
ts
Modules
@Module
是用来聚合一个业务模块所需要的关联组件(controller、provider
)又可以通过imports
来复用其他模块的入口层用以拆分业务模块,每个应用至少有一个根模块
app.module.ts
ts
things.module.ts
ts
DTO
DTO
(data transfer object)用来规定api入参及返回数据的形式及类型接口,通过useGlobalPipes
搭配class-validator
以解决类型安全及参数校验一旦参数不满足则返回400状态提示
createSomeThing.dto.ts
ts
使用@nestjs/mapped-types
对于现有DTO
字段规则进行复用
updateSomeThing.dto.ts
ts
things.controller.ts
ts
main.ts
ts
Dependency Injection
范式约定
- 对于api风格的推荐使用非特定框架写法
ts
- 对于api错误信息推荐使用
Expection Layer
返回特定场景的错误提示
ts