Belajar NestJS - Memulai Aplikasi Pertama
Episode 3 of 24

Belajar NestJS - Memulai Aplikasi Pertama

Episode ini memandu membuat project NestJS pertama memakai Nest CLI, memahami struktur src/app.module.ts dan main.ts, menjalankan aplikasi, memeriksa endpoint dasar, serta menerapkan konfigurasi awal dengan @nestjs/config.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Teori arsitektur sudah cukup — sekarang saatnya tangan di keyboard. Episode 3 memandu kalian membuat project NestJS pertama dari nol memakai Nest CLI, memahami setiap file yang dihasilkan, menjalankan server, dan menambahkan konfigurasi dasar.

Di akhir episode ini kalian akan punya aplikasi NestJS yang berjalan dan memahami struktur default yang menjadi fondasi semua project NestJS di series ini.

Membuat Project dengan Nest CLI

Perintah nest new

Nest CLI menyediakan perintah nest new untuk membuat project lengkap dengan struktur standar:

Membuat project NestJS baru
nest new belajar-nestjs

Nest CLI akan menanyakan package manager — pilih npm. Setelah selesai, masuk ke folder project dan jalankan server development:

Menjalankan server development
cd belajar-nestjs
npm run start:dev

Perintah npm run start:dev menjalankan aplikasi dengan watch mode — setiap perubahan file akan otomatis me-restart server.

Memeriksa Endpoint Dasar

Buka browser ke http://localhost:3000. Kalian akan melihat teks Hello World! yang dikembalikan oleh controller default:

Cek endpoint dasar lewat curl
curl http://localhost:3000

Response Hello World! menandakan aplikasi berjalan dengan baik. Ini adalah response dari AppController yang ada di folder src.

Memahami Struktur Project

File main.ts

main.ts adalah entry point aplikasi. Di sinilah NestFactory.create dipanggil dan aplikasi di-bootstrap. Semua global setup seperti validation pipe dan CORS nantinya dilakukan di file ini.

JSIsi file src/main.ts
import { NestFactory } from "@nestjs/core";
import { AppModule } from "./app.module";
 
async function bootstrap(): Promise<void> {
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.PORT ?? 3000);
}
 
void bootstrap();

Perhatikan process.env.PORT ?? 3000 — aplikasi membaca port dari environment variable dengan fallback ke 3000.

File app.module.ts

app.module.ts adalah root module. Semua module fitur yang dibuat nanti akan didaftarkan lewat array imports di file ini.

JSIsi file src/app.module.ts
import { Module } from "@nestjs/common";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
 
@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Struktur ini menunjukkan pola inti NestJS: module mendeklarasikan controller yang menangani request dan provider yang berisi logika.

Menjalankan dan Menguji Aplikasi

Mode Development vs Production

Untuk development, npm run start:dev memberi watch mode. Untuk menjalankan sekali tanpa watch, gunakan npm run start. Saat siap production, npm run build mengompilasi TypeScript ke folder dist lalu npm run start:prod menjalankan hasil kompilasi.

Build dan jalankan production
npm run build
npm run start:prod

Melihat Log Aplikasi

Saat server berjalan, NestJS menampilkan log di terminal — termasuk konteks seperti NestApplication dan pesan Application is running on. Log ini membantu memastikan modul dan provider terdaftar dengan benar.

Konfigurasi Dasar dengan @nestjs/config

Install Package

Untuk mengelola environment variable secara terstruktur, install @nestjs/config:

Install @nestjs/config
npm install @nestjs/config

Import ConfigModule

Daftarkan ConfigModule di app.module.ts:

JSMendaftarkan ConfigModule
import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
 
@Module({
  imports: [ConfigModule.forRoot()],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

ConfigModule.forRoot() membaca file .env di root project dan mengekspos nilainya lewat ConfigService.

Membuat File .env

Buat file .env di root project:

Isi file .env
PORT=3000
NODE_ENV=development

Jangan lupa tambahkan .env ke .gitignore agar secret tidak ikut ter-commit. ConfigService nanti dipakai untuk membaca nilai-nilai ini — detail lengkapnya kita bahas di episode 8.

Penutup

Episode 3 berhasil membawa kalian dari nol ke aplikasi NestJS pertama yang berjalan. Kalian sudah memahami nest new, struktur main.ts dan app.module.ts, mode development dan production, serta langkah awal konfigurasi dengan @nestjs/config.

Inti yang harus dibawa pulang:

  • nest new membuat project lengkap; pilih npm sebagai package manager.
  • npm run start:dev menjalankan server dengan watch mode.
  • main.ts adalah entry point; app.module.ts adalah root module.
  • curl http://localhost:3000 memverifikasi aplikasi berjalan.
  • npm run build mengompilasi ke dist untuk production.
  • ConfigModule.forRoot() mengaktifkan pembacaan file .env.

Di episode 4 selanjutnya kita akan membahas controllers dan routing — membuat controller dan route handler, memakai dekorator @Get @Post @Put @Delete @Patch, menangani route parameter, query parameter, body parsing, serta pengaturan status code dan serialization response.

Belajar NestJS - Memulai Aplikasi Pertama | Belajar NestJS