Skip to main content

控制器

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;
}
}