Skip to content

NestJS

NestJS 是基于 Node.js 的框架,使用 TypeScript 的服务端应用程序的框架。

环境准备

安装 Nestjs 脚手架

shell
npm i -g @nestjs/cli

创建一个新项目

shell
nest new admin-by-nestjs

启动本地服务

shell
npm run start

终端启动 HTTP 服务,会监听定义在 src/main.ts 文件中定义的端口号。

应用程序运行后, 打开浏览器并访问本地 3000 端口,可以看到 Hello world! 信息。

控制器

控制器负责处理传入的请求和向客户端返回响应。

通常,每个控制器有多个路由,不同的路由可以执行不同的操作。

创建一个控制器,需要使用到装饰器

  • 装饰器将类与所需的元数据相关联,并使 Nest 能够创建路由映射(将请求绑定到相应的控制器)。
  • 快速创建控制器,可在终端执行 nest g controller xxx,了解更多常见的创建类命令

路由

xxx.controller.ts 文件,使用 @Controller() 装饰器定义一个控制器。

一个处理程序的路由路径是通过:连接为控制器 (Controller) 声明的(可选)前缀 + 请求装饰器中指定的任何路径来确定的。

  • 控制器声明的前缀:
    • @Controller(path):路径前缀,可选。是对一组相关的路由进行分组,并减少重复代码,如 @Controller('user')
  • 请求装饰器中指定的任何路径
    • @Get(path):,如 @Get('info'),组合起来的路由路径就是 /user/info

Request

Nest 提供的装饰器及其代表的底层平台特定对象的对照列表

装饰器Request 对象
@Request(),@Req()req
@Response(),@Res()res
@Next()next
@Session()req.session
@Param(key?: string)req.params/req.params[key]
@Body(key?: string)req.body/req.body[key]
@Query(key?: string)req.query/req.query[key]
@Headers(name?: string)req.headers/req.headers[name]
@Ip()req.ip
@HostParam()req.hosts
  • @Res() 只是 @Response() 的别名

资源

路由通配符

状态码

Headers

重定向

路由参数

子域路由

作用域

异步性

请求负载

处理错误

完整示例

最后一步

类库特有方式

提供者

模块

中间件

异常过滤器

管道

守卫

拦截器

自定义装饰器

常用命令

项目脚本

功能命令
启动项目npm run start
启动项目(监听文件变化)npm run start:dev
检查 JavaScriptnpm run lint
检查样式npm run format

创建类命令

功能命令
创建模块nest g module <module-name>
创建控制器nest g controller <controller-name>
创建服务nest g service <service-name>
创建守卫nest g guard <guard-name>
创建拦截器nest g interceptor <interceptor-name>

参考文档

如有转载或 CV 的请标注本站原文地址