新手入门NestJS(五)- 控制器Request

一个控制器的目的是接收来自应用的一个请求

那么如何来处理这个请求,以及如何接收一个请求

Nest.js提供了一个Request Object

先看下之前写的一个例子

import { Controller, Get, Render, Res } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(): string {
    return 'This action will returns all cats';
  }
}

我们想知道如何在这个例子中获取request中的参数

修改代码如下

import { Controller, Get, Render, Req, Request } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(@Req() request: Request): string {
    return 'This action will returns all cats';
  }
}

http obejct包括了所有http的属性,比如http query 参数、http header、body、parameters等

但是在Nest.js中已经提供了专用的装饰器比如@Body@Query

其他的罗列在下面了

@Request()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