美文网首页
二、nestjs request的一些装饰器

二、nestjs request的一些装饰器

作者: Nick_4438 | 来源:发表于2022-10-25 09:03 被阅读0次

简介

本文介绍nestjs的一些常用装饰器

详细

GET请求应答

  @Get()
  findAll(@Request() req) {
    console.log(req.query)
    return{
      code:200,
      message:req.query.name
    }
  }
//   { name: '张三' }
  • 请求应答
curl --location --request GET 'http://127.0.0.1:3000/user?name=张三' \
--header 'User-Agent: Apifox/1.0.0 (https://www.apifox.cn)'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    33  100    33    0     0   1750      0 --:--:-- --:--:-- --:--:--  1833{"code":200,"message":"ÕÅÈý"}

  • 使用Query优化
  @Get()
  findAll(@Query() query) {
    return{
      code:200,
      message:query.name
    }
  }

POST 请求应答

  • 代码:
 @Post()
  create(@Request() req) {
    // return this.userService.create(createUserDto);
    console.log(req.body)
    return {
      code:200,
      status: req.body.name
    }
  }
  • 命令
$ curl --location --request POST 'http://127.0.0.1:3000/user' \
--header 'User-Agent: Apifox/1.0.0 (https://www.apifox.cn)' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "Nick"
}'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    50  100    28  100    22   2365   1858 --:--:-- --:--:-- --:--:--  4545{"code":200,"status":"Nick"}

  • 优化,直接获取body
 @Post()
  create(@Body() body) {
    console.log(body)
    return {
      code:200,
      status: body.name
    }
  }
  • 优化直接获取请求体内属性
 @Post()
  create(@Body('name') name) {
    console.log(name)
    return {
      code:200,
      status: name
    }
  }
  • 优化,直接获取对象
@Post()
  create(@Body() createUserDto: CreateUserDto) {
    return this.userService.create(createUserDto);
  }

GET 动态请求

  • ts从request中获取
@Get(':id')
  findOne(@Request() req) {
    console.log(req.params)
    return {
      code: 200,
      id: req.params.id
    }
  }
  • ts直接获取param
@Get(':id')
  findOne(@Param('id') id: string) {
    return this.userService.findOne(+id);
  }

header裝飾器

  @Get(':id')
  findOne(@Request() req,@Headers() headers) {
    console.log(req.params)
    return {
      code: 200,
      id: req.params.id,
      token: headers.token
    }
  }

相关文章

网友评论

      本文标题:二、nestjs request的一些装饰器

      本文链接:https://www.haomeiwen.com/subject/ewaizrtx.html