请求头(Headers)
有时候,需要指定自定义响应头,这个时候可以使用 @Header() 修饰器或类库特有的响应对象
import { Controller, Get, Header, HttpCode, Post } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Post()
@HttpCode(200)
@Header('Cache-Control', 'defineHeader')
createPost() {
return '这里是Controller:POST路由的cats的createPost方法~';
}
@Get()
findAllCats() {
return '这里是Controller:cats的findAllCats方法~';
}
@Get('wjy*wjy')
findWildcard() {
return '这里是路由的通配符(*)';
}
}
使用Postman发送一个POST请求,得到如下:
这就就把一个自定义的请求头加上了。
路由参数
获取单个参数
有时候,我们会在请求的路由中,夹杂着一些参数,怎样获取这个参数呢?
import { Controller, Get, Header, HttpCode, Param, Post } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Post()
@HttpCode(200)
@Header('Cache-Control', 'defineHeader')
createPost() {
return '这里是Controller:POST路由的cats的createPost方法~';
}
@Get()
findAllCats() {
return '这里是Controller:cats的findAllCats方法~';
}
@Get('wjy*wjy')
findWildcard() {
return '这里是路由的通配符(*)';
}
@Get(':id')
findOne(@Param() params) {
return `接受路由中的参数:${params.id}`;
}
}
获取多个参数
有时候,路由中的参数可能不止一个,如何获取多个参数呢?
import { Controller, Get, Header, HttpCode, Param, Post } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Post()
@HttpCode(200)
@Header('Cache-Control', 'defineHeader')
createPost() {
return '这里是Controller:POST路由的cats的createPost方法~';
}
@Get()
findAllCats() {
return '这里是Controller:cats的findAllCats方法~';
}
@Get('wjy*wjy')
findWildcard() {
return '这里是路由的通配符(*)';
}
@Get(':id')
findOne(@Param() params) {
return `接受路由中的参数:${params.id}`;
}
@Get(':id/:name')
findMore(@Param() params) {
return `接受路由中的参数:id:${params.id},name:${params.name}`;
}
}
获取特定的参数
获取特定的参数,在括号中传入其参数名,具体如下:
import { Controller, Get, Header, HttpCode, Param, Post } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Post()
@HttpCode(200)
@Header('Cache-Control', 'defineHeader')
createPost() {
return '这里是Controller:POST路由的cats的createPost方法~';
}
@Get()
findAllCats() {
return '这里是Controller:cats的findAllCats方法~';
}
@Get('wjy*wjy')
findWildcard() {
return '这里是路由的通配符(*)';
}
// @Get(':id')
// findOne(@Param() params) {
// return `接受路由中的参数:${params.id}`;
// }
@Get(':id/:name')
findMore(@Param() params) {
return `接受路由中的参数:id:${params.id},name:${params.name}`;
}
@Get(':name')
findName(@Param('name') name) {
return `接受特定的参数Name:${name}`;
}
}
这里先将@Get(’:id’)这个路由先注释掉了,因为这个路由在@Get(’:name’)的上面,Nest会先匹配这个路由,从而会出现以下情况:
注释掉@Get(’:id’)后,重新运行的结果为:
这个时候,就拿到了name这个参数。