二、nestjs request的一些装饰器
2022-10-25 本文已影响0人
Nick_4438
简介
本文介绍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
}
}