Moving Logic from Controller to Service
Glissez pour afficher le menu
At first, it is common to place logic directly inside a controller. This works for simple cases, but quickly becomes hard to manage as the application grows.
Here is an example of logic inside a controller:
@Controller('users')
export class UsersController {
@Get()
getUsers() {
return ['Alice', 'Bob'];
}
}
This approach mixes request handling and business logic in one place.
To improve this, move the logic into a service.
Create a service:
import { Injectable } from '@nestjs/common';
@Injectable()
export class UsersService {
getUsers() {
return ['Alice', 'Bob'];
}
}
Now update the controller:
import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';
@Controller('users')
export class UsersController {
constructor(private usersService: UsersService) {}
@Get()
getUsers() {
return this.usersService.getUsers();
}
}
Here is what changed:
- The controller no longer contains data or logic;
- The service handles all processing;
- The controller only calls the service and returns the result.
This separation makes your code easier to read, test, and extend.
Tout était clair ?
Merci pour vos commentaires !
Section 3. Chapitre 3
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Section 3. Chapitre 3