控制器
Controller Request
Nestjs提供了方法参数装饰器 用来帮助我们更方便的获取参数
@Request()
@Request() 装饰器可以获取请求对象,它会将请求对象注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该请求对象。
import { Controller, Get, Request } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Request() request) {
return request.url;
}
}
@Body()
@Body() 装饰器可以获取请求体,它会将请求体注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该请求体。
import { Controller, Get, Body } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Body() body) {
return body;
}
}
@Query()
@Query() 装饰器可以获取请求参数,它会将请求参数注入到控制器的构造函数中,并且在控制器的 任何方法中都可以使用该请求参数。
import { Controller, Get, Query } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Query() query) {
return query;
}
}
@Param()
@Param() 装饰器可以获取路由参数,它会将路由参数注入 到控制器的构造函数中,并且在控制器的任何方法中都可以使用该路由参数。
import { Controller, Get, Param } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get(':id')
findOne(@Param() params) {
console.log(params.id);
}
}
@Controller('cats')
export class CatsController {
@Get(':id')
findOne(@Param('id') id) {
console.log(id);
}
}
@Headers()
@Headers() 装饰器可以获取请求头,它会将请求头注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该请求头。
import { Controller, Get, Headers } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Headers() headers) {
return headers;
}
}
@Res()
@Res() 装饰器可以获取响应对象,它会将响应对象注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该响应对象。
import { Controller, Get, Res } from '@nestjs/common';
@Controller('cats')
export class CatsController {
}
@Next()
@Next() 装饰器可以获取下一个中间件的处理函数,它会将下一个中间件的处理函数注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该下一个中间件的处理函数。
import { Controller, Get, Next } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Next() next) {
next();
}
}
@Session()
@Session() 装饰器可以获取session对象,它会将session对象注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该session对象。
import { Controller, Get, Session } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Session() session) {
return session;
}
}
Controller Response
Nestjs提供了方法参数装饰器 用来帮助我们更方便的获取参数
@Res()
@Res() 装饰器可以获取响应对象,它会将响应对象注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该响应对象。
import { Controller, Get, Res } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Res() res) {
res.send('Hello World!');
}
}
@Redirect()
@Redirect() 装饰器可以重定向到一个新的URL,它会将重定向的URL注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该重定向的URL。
import { Controller, Get, Redirect } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Redirect() url) {
return url;
}
}
@Render()
@Render() 装饰器可以渲染一个视图,它会将渲染的视图注入到控制器的构造函数中,并且在控制器 的任何方法中都可以使用该渲染的视图。
import { Controller, Get, Render } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Render('cats') render) {
return render;
}
}
@Status()
@Status() 装饰器可以设置响应状态码,它会将响应状态码注入到控制器的构造函数中,并且在控制器的任何方法中都可以使用该响应状态码。
import { Controller, Get, Status } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(@Status() status) {
return status;
}
}