index
基础使用
安装
$ npm i -g @nestjs/cli
$ nest new project-name
依赖
npm i -D @types/express
使用官方模板
$ git clone https://github.com/nestjs/typescript-starter.git project
$ cd project
$ npm install
$ npm run start
默认行为
响应状态码
Get
:默认总是返回 200Post
:默认总出返回 201
nestjs 基础概念
Express和Fastify内核
Nest 提供了对底层平台(默认为 Express
)
Exporess
- 类:
NestExpressApplication
Fastify
- 类:
NestFastifyApplication
Router 路由
/* cats.controller.ts */
// 这里创建了一个 /cats 路由,该请求的类型是 Get
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'This action returns all cats';
}
}
通配符
?
:正则+
:正则*
:正则()
:正则-
:按字符串路径逐字解析.
:按字符串路径逐字解析
@Get('cc*vb')
内置装饰器
自定义的装饰器
装饰器 | 对应api | 说明 |
---|---|---|
@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 | |
@HttpCode(code:int) | 定义当前请求返回的状态码 |