همانطور که قبلاً نیز اشاره شد ، Nest.js به شدت از Angular الهام گرفته است و شبیه برنامه های Angular است ، می توان به راحتی یک سرویس را ایجاد کرد و آن را به کنترلرها یا سایر سرویس ها نیز تزریق کرد. به این سرویس ها، Provider نیز گفته می شود به معنی ارائه دهنده و براساس فلسفه Nest.js ، اینگونه طراحی شده است تا هر نوع پیچیدگی و منطق برنامه را در کلاسهایی بنام service قرار بدهد.

 

سرویس ها در Nest.js فقط یک کلاس جاوا اسکریپت معمولی هستند که یک دکوراتور مخصوص Injectable () به بالای آن اضافه میشود.

 

به عنوان مثال ، می توانید همانطور که در شکل زیر مشاهده می کنید ، یک سرویس برای دریافت لیست کاربران ایجاد کنید:

// users.service.ts

import { Injectable } from '@nestjs/common';
import { User } from './interfaces/user.interface';

@Injectable()
export class UsersService {
  private readonly users: User[] = [];

  create(user: User) { 
    this.users.push(user);   }

  findAll(): User[] {
    return this.users;
  }
}

سرویس فوق دارای دو متود create و findeAll است. که میتواند به ترتیب برای ایجاد و دریافت لیست کاربران مورد استفاده قرار گیرد. از اینترفیس هم برای نوع داده استفاده کردیم تا به صورت خودکار آن را بررسی شود و هنگام کدنویسی هم خودمان بدانیم که خواص و متودهای هر آبجکت user چه هستند.