Nest 2 | Controller tips

379 阅读1分钟

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