Los controladores son aquellos bloques de código que se van a llamar cuando una ruta sea visitada. En la clase pasada creamos el módulo tasks y ahora vamos a crear alguna función para este módulo. Podemos crearlo desde la consola utilizando el comando next generate controller y el nombre del controlador, que debe ser igual que el nombre del módulo
Acá me olvide de pasarle el nombre y me lo pregunta antes de realizar cualquier actividad. Me crea el controlador y el archivo de testing y además actualiza el módulo para que ahora tenga el controlador cargado.
Así se verá el controlador vacío
import { Controller } from '@nestjs/common';
@Controller('tasks')
export class TasksController {}
Dentro de las llaves del TasksController debo decir que funciones se van a aplicar, cuando y desde donde. Supongamos que queremos cuando se haga una petición GET al servidor desde determinada url, por ejemplo tareas, nos devuelva un mensaje diciendo “Se estan trayendo todas las tareas al cliente”
import { Controller } from '@nestjs/common';
@Controller('tasks')
export class TasksController {
@Get()
getAllTasks() {
return 'Se están trayendo todas las tareas al cliente';
}
}
Expliquemos paso a paso el código. Dentro del TasksController, el controlador donde se encuentran las funciones del módulo tasks indicamos que cuando se haga una petición GET a la ruta /tasks se ejecutará la función getAllTasks que devuelve un mensaje que dice que se están trayendo todas las tareas al cliente.
Podes tambien pensar controladores para subramas dentro de la rama principal. Mirá este ejemplo
@Controller('tasks')
export class TasksController {
@Get()
getAllTasks() {
return 'Se están trayendo todas las tareas al cliente';
}
@Get('/task')
getATask() {
return 'Se está trayendo una tarea al cliente';
}
}
Ahora, cuando vayamos a la ruta /tasks/task se ejecutará la función getATask.