Creating and Using a Service
Swipe to show menu
Open the src folder and create a new file:
users.service.ts
Add the following code:
import { Injectable } from '@nestjs/common';
@Injectable()
export class UsersService {
getAllUsers() {
return ['Alice', 'Bob'];
}
}
This service contains the logic for working with users.
Now register the service in your module.
Open app.module.ts and update it:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { UsersController } from './users.controller';
import { UsersService } from './users.service';
@Module({
imports: [],
controllers: [AppController, UsersController],
providers: [AppService, UsersService],
})
export class AppModule {}
Here is what is happening:
providers: registers services used in the app;UsersService: makes the service available for use.
Now use the service inside your 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();
}
}
constructor: injects the service;usersService: gives access to service methods;getUsers(): calls the service and returns data.
Now when you open /users, the data comes from the service instead of being defined in the controller.
Everything was clear?
Thanks for your feedback!
Section 1. Chapter 10
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Section 1. Chapter 10