Skip to content

A. NestJs Module

1. Apa itu Module?

  • Module merupakan sebuah class yang digunakan untuk mengelompokan fitur yang sama
  • Nest JS wajib memiliki minimal satu module, setidaknya root module
  • Setiap module diletakan pada sebuah folder agar struktur project menjadi rapih
  • module merupakan singleton artinya instance dari object adalah satu namun bisa digunakan berkali-kali

Module pada NestJS dibuat menggunakan decorator @Module() pada class, docorator @Module() bertugas untuk memberikan metadata pada module yang digunakan oleh NestJS untuk mengorganisasi project.

app.module.ts

app.module.ts
@Module({
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

2. Property pada Module

Property Deskripsi
providers Kumpulan provider yang akan dibuat oleh NestJS injector yang bisa dishare diseluruh module
controllers Kumpulan contoller yang akan digunakan pada modul
imports Daftar module yang ingin kita gunakan fiturnya dari module lain, dengan syarat module/service/fitur nya harus sudah di export di module asal
exports Kumpulan provider/fitur/service yang akan di export. Fitur ini nantinya akan di import module lain

3. Bagaimana Module di NestJS?

NestJS Default Module

Alt text

Shared Module

Alt text

4. Latihan Membuat Module

Pada latihan kali ini, kita akan membuat module menggunakan nest cli

terminal
npx nest g module latihan

Jika berhasil maka akan muncul message seperti di bawah

terminal
ihsanabuhanifah@ihsanabuhanifah-MacBook-Pro backend-nestjs % npx nest g module latihan
CREATE src/latihan/latihan.module.ts (84 bytes)
UPDATE src/app.module.ts (320 bytes)

pada saat kita membuat module menggunakan Nest CLI, maka module akan otomatis terimport ke dalam Root App Module

app.module.ts
import { Module } from "@nestjs/common";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { LatihanModule } from "./latihan/latihan.module"; // otomatis terimport kesini

@Module({
  imports: [LatihanModule], // Secara otomatis akan
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Kemudian kita akan melihat folder latihan dan latihan.module.ts seperti gambar berikut

Alt text

Kemudian ketika kita membuka file module latihan.module.ts

latihan.module.ts
import { Module } from "@nestjs/common";

@Module({})
export class LatihanModule {}

Sampai tahap ini kita sudah berhasil membuat module dengan nest cli, Selanjutnya silahkan latihan membuat module.