Skip to main content

控制器详解

先看实例

import {Controller, Get, Post, Body, Param, Request, Query, Headers, HttpCode, Req} from '@nestjs/common';
import { UserService } from './user.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';

@Controller('user')
export class UserController {
constructor(private readonly userService: UserService) {}

@Get()
findAll (@Query() req) {
console.log(req)
return {
code:200,
message: req.name
}
}

@Post()
create (@Body('age') body) {
console.log(body)
return {
code: 200,
message:body
}
}

@Get(':id')
@HttpCode(500)
findId (@Param('id') id, @Headers() header) {
console.log(header)
return {
code: 200,
message: id
}
}
}

tips: 为了快速创建一个内置验证的CRUD控制器,您可以使用CLI的CRUD生成器: nest g resource [name]

路由

使用@Controller()装饰器,指定一个可选的路由前缀user,轻松将路由分组,并最大限度减少重复代码