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 adalah komponent paling penting di dalam NestJS, Module akan menampung semuanya termasuk Codingan yang kita buat. misalnya Controller, Service, Config, dan lain - lain.
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 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 {}
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:
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 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){}
}
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()
}
}
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"
Komponen paling utama untuk membuat API di dalam NestJS supaya bisa di akses user adalah
dengan komponen di atas kita sudah bisa membuat API dengan menggunakan Framework Nest JS
Artikel Terkait
© 2023 PT Koding Digital Indonesia. All rights reserved