What Are Services and Why They Matter
Swipe to show menu
Services are responsible for handling business logic in your application.
Instead of placing logic inside controllers, you move it into services to keep your code organized and easier to maintain.
A controller should only:
- Receive the request;
- Call the appropriate service;
- Return the response.
All processing and data handling should happen inside a service.
Here is an example:
import { Injectable } from '@nestjs/common';
@Injectable()
export class UsersService {
getAllUsers() {
return ['Alice', 'Bob'];
}
}
The @Injectable() decorator tells Nest.js that this class can be used as a service.
Now use this service inside a 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.getAllUsers();
}
}
UsersService: contains the logic;UsersController: calls the service;- The controller does not handle data directly.
This separation makes your code cleaner and easier to scale.
Everything was clear?
Thanks for your feedback!
SectionΒ 3. ChapterΒ 1
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
SectionΒ 3. ChapterΒ 1