Controller tips
1. 通过命令创建 Controller
nest g co <name>
2. 重定向
@Get()
@Redirect('https://nestjs.com', 301)
这个是添加到方法注解上,不过这种方式不是很通用,一般来说我们重定向的时候是需要携带参数的,这样直接写死在注解里面不太好。这个时候可以通过返回值来处理 重定向 如下
@Get('/redirect')
@Redirect()
redirect() {
return {url: "https://baidu.com", code: 301}
}
3. 路由参数 @param
@Param()用于装饰方法参数(params在上面的示例中),并使路由参数可用作方法主体内的装饰方法参数的属性
// curl -X GET localhost/user/1
@Get('user/:id')
findOne(@Param() params): string {
console.log(params.id); // 1
return `This action returns a #${params.id} cat`;
}
也可以换一种方式获取
@Get(':id')
findOne(@Param('id') id: string): string {
console.log(id);
return `This action returns a #${id} cat`;
}
其他注解
@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 |