Lesson 4 / 33
Controllers & Routing
Handle HTTP requests with decorated methods.
A basic controller
@Controller marks a class as a controller; @Get(), @Post(), etc. decorate handler methods.
import { Controller, Get, Post, Body } from '@nestjs/common';
import { UsersService } from './users.service';
@Controller('users')
export class UsersController {
constructor(private usersService: UsersService) {}
@Get()
findAll() {
return this.usersService.findAll();
}
@Post()
create(@Body() createUserDto: CreateUserDto) {
return this.usersService.create(createUserDto);
}
}Route params & query
Use @Param() for URL segments, @Query() for query strings.
@Get(':id')
findOne(@Param('id') id: string) {
return this.usersService.findOne(id);
}
@Get()
findAll(@Query('limit') limit: number = 10) {
return this.usersService.findAll(limit);
}HTTP verb decorators
@Get, @Post, @Put, @Delete, @Patch map to HTTP methods; the path argument is relative to the controller's base path.