Mister Coding

Konsep penting yang wajib di ketahui di dalam Framework NestJS


Agik Setiawan

Full Stack Developer

April 4th 2023

Ada beberapa hal yang harus di pahami di dalam Framework NestJS disini saya akan menjelaskan konsep sederhana yang akan membantu dalam memahami NestJS seperti Module, Controller, Provider, dan juga sitem Routing di dalam NestJS.

 

Module

Module adalah komponent paling penting di dalam NestJS, Module akan menampung semuanya termasuk Codingan yang kita buat. misalnya Controller, Service, Config, dan lain - lain.


Image


Untuk membuat Module kita hanya perlu melakukan perintah dengan menggunakan Nest CLI

nest g mo NAMA_MODULE

"NAMA_MODULE" adalah nama module yang kita buat misalnya module "Pembayaran", "User", dan lain lain


Contoh module user

nest g mo user

Perintah di atas akan membuat file "user.module.ts" seperti di bawah ini

import { Module } from '@nestjs/common';

@Module({})
export class UserModule {}


Module digunakan untuk mengelompokan bagian secara terpisah dan bersifat multipurpose atau bisa gunakan untuk mengelompokan berbagai hal misalnya Entitas, Setingan, Data, dan lain - lain.

 

Controller

Controller adalah fungsi yang berkaitan langsung dengan HTTP yang di akses oleh User misalnya Rest API. di dalam Controller sendiri memiliki beberapa method yang di panggil oleh API misalnya POST, GET, PUT, DELETE, PATCH, dan lain - lain.


Untuk membuat controller bisa di lakukan dengan Nest CLI atau menulis code secara manual.

Membuat Controller dengan menggunakan Nest CLI

nest g co NAMA_CONTROLLER

NAMA_CONTROLLER adalah nama dari Controller yang kita buat

nest g co user

Perintah di atas akan membuat Controller "user.controller.ts"

import { Controller } from '@nestjs/common';

@Controller('user')
export class UserController {}

 

Services

Service adalah konsep design pattern yang biasa di gunakan untuk membuat berbagai aplikasi misalnya Web, Desktop, Mobile. di dalam NestJS menggunakan Service Pattern secara defaultnya.


Service digunakan untuk memisahkan Logika dengan Controller misalnya service "User" akan memiliki beberapa fungsi yang berkaitan dengan "User" misalnya:

  • Create User fungsi untuk membuat user baru
  • Get User fungsi untuk mengambil data user
  • Update User fungsi untuk merubah data user
  • Delete User fungsi untuk mengahapus data user

 

Cara membuat service


Untuk membuat Service kita bisa menggunakan Nest CLI atau menulis code secara manual. cara paling mudah yaitu dengan menggunakan Nest CLI dengan memasukan perintah lewat Terminal atau CMD

nest g service NAMA_SERVICE

"NAMA_SERVICE" adalah nama dari Service yang kita buat

nest g s user

Perintah di atas akan membuat service dengan nama "user.service.ts"

import { Injectable } from '@nestjs/common';

@Injectable()
export class UserService {}

Provider

 

Apa itu Provider?

Provider adalah array yang menampung Class - Class lain untuk melakukan proses Dependeny Injection terhadap Class lain.

Provider di gunakan untuk Dependency Injection, untuk lebih jelasny lihat contoh di bawah ini

import { Controller } from '@nestjs/common';
import { UserService } from './user.service';

@Controller('user')
export class UserController {
    constructor(private service: UserService){}
}

Dependency Injection


Pada contoh di atas kita menggunakan Class Service secara langsung di dalam Contructor dari UserController, Proses itu dinamakan Dependency Injection. tanpa Provider proses seperti di atas tidak bisa dilakukan di NestJS, maka dari itu kita memerlukan Provider jika kita ingin menggunakan Depency Injection.


Tanpa Dependency Injection maka code kita akan menjadi seperti

import { Controller } from '@nestjs/common';
import { UserService } from './user.service';

@Controller('user')
export class UserController {
    private service;
    constructor() {
        this.service = new UserService()
    }
}

Bagaimana cara membuat Provider?


Kita tidak perlu membuat provider karena provider sudah tersedia di dalam Module. pada saat kita membuat Service, maka Module otomatis akan menambahkan Class Service ke dalam Provider, namun kalo kita membuat secara manual kita bisa menambahkan secara manual di dalam Module


Contoh "user.module.ts"

import { Module } from '@nestjs/common';
import { UserController } from './user.controller';
import { UserService } from './user.service';

@Module({
  controllers: [UserController],
  providers: [UserService]
})
export class UserModule {}

Untuk membuat class menjadi Dependency Injection seperti contoh di atas kita hanya perlu menambahkan Class ke dalam array "providers"

Kesimpulan

Komponen paling utama untuk membuat API di dalam NestJS supaya bisa di akses user adalah

  • Module
  • Controller
  • Service
  • Provider


dengan komponen di atas kita sudah bisa membuat API dengan menggunakan Framework Nest JS

Artikel Terkait

Berkenalan dengan NestJS dan cara install NestJS

Pada tutorial kali ini kita akan berkenalan dengan NestJS, memahami cara kerja NestJS dan cara menginstall NestJS

Mister Coding

© 2023 PT Koding Digital Indonesia. All rights reserved

Company

Privacy PolicyTerms & Condition