Saatnya “pindah rumah”! Di pelajaran ini, kita akan memindahkan kode-kode kita dari file index.js
yang mulai ramai ke dalam “laci-laci” yang sudah kita siapkan di folder routes
dan controllers
.
Misi kita adalah membuat index.js
menjadi sangat bersih dan ramping, hanya bertugas sebagai “manajer” yang menghubungkan semuanya.
Langkah 1: Membuat File Controller (Otak Logika)
Pertama, kita akan memindahkan logika inti (apa yang harus dilakukan saat route dipanggil) ke dalam file controller.
-
Buat File Controller: Di dalam folder
src/controllers
, buat sebuah file baru bernamastudent.controller.js
. -
Pindahkan Logika: Salin dan tempel kode berikut ke dalam
student.controller.js
.// Database sementara kita pindahkan ke sini let students = [ { id: 1, nama: 'Andi' }, { id: 2, nama: 'Citra' } ]; // Fungsi untuk mendapatkan semua data siswa const getAllStudents = (request, response) => { response.json(students); }; // Fungsi untuk menambahkan siswa baru const createNewStudent = (request, response) => { const newStudent = request.body; students.push(newStudent); response.send('Siswa baru berhasil ditambahkan!'); }; // Export fungsi-fungsi agar bisa digunakan di file lain module.exports = { getAllStudents, createNewStudent };
- Penjelasan: Kita membuat dua fungsi,
getAllStudents
dancreateNewStudent
. Perhatikan bahwa isi dari fungsi-fungsi ini persis sama dengan logika yang sebelumnya ada di dalamapp.get()
danapp.post()
. module.exports
: Ini adalah cara Node.js untuk membuat fungsi atau variabel dari satu file bisa diakses (di-import) oleh file lain.
- Penjelasan: Kita membuat dua fungsi,
Langkah 2: Membuat File Router (Papan Penunjuk Jalan)
Sekarang, kita buat “papan penunjuk jalannya”. File ini hanya akan mendefinisikan URL dan memberi tahu fungsi controller mana yang harus dipanggil.
-
Buat File Router: Di dalam folder
src/routes
, buat sebuah file baru bernamastudent.route.js
. -
Tulis Kode Router: Salin dan tempel kode berikut ke dalam
student.route.js
.const express = require('express'); const router = express.Router(); // Import fungsi controller yang sudah kita buat const studentController = require('../controllers/student.controller.js'); // Definisikan route GET dan POST // Ketika ada request GET ke '/', panggil fungsi getAllStudents router.get('/', studentController.getAllStudents); // Ketika ada request POST ke '/', panggil fungsi createNewStudent router.post('/', studentController.createNewStudent); // Export router agar bisa digunakan di index.js module.exports = router;
express.Router()
: Kita membuat sebuah instance mini dari aplikasi Express yang khusus untuk menangani routing.require('../controllers...')
: Kita mengimpor fungsi-fungsi dari file controller.../
berarti “naik satu level direktori”.router.get('/', ...)
: Perhatikan, sekarang handler-nya bukan lagi fungsi anonim, melainkan fungsi yang sudah kita impor dari controller.
Langkah 3: Menghubungkan Semuanya di index.js
Inilah bagian finalnya. Kita akan membersihkan index.js
dan membuatnya hanya bertugas sebagai manajer.
-
Buka File
index.js
: Buka filesrc/index.js
. -
Ubah Kodenya: Hapus semua kode lama dan ganti dengan kode yang jauh lebih bersih ini:
const express = require('express'); const app = express(); const port = 3000; // Middleware untuk membaca body request dalam format JSON app.use(express.json()); // Import router siswa const studentRouter = require('./routes/student.route.js'); // Gunakan router siswa untuk path yang diawali dengan /students app.use('/students', studentRouter); // Jalankan server app.listen(port, function () { console.log(`Server berjalan di http://localhost:${port}`); });
- Penjelasan
app.use('/students', studentRouter)
: Baris ini adalah kuncinya. Kita memberitahu aplikasi Express utama kita: “Untuk setiap permintaan yang alamatnya diawali dengan/students
, tolong serahkan penanganannya kepadastudentRouter
“.
- Penjelasan
Langkah 4: Pengujian Akhir
Meskipun kita sudah memecah kode kita ke dalam tiga file berbeda, dari luar (dari sudut pandang Postman), tidak ada yang berubah.
-
Matikan server lama jika masih berjalan (tekan
Ctrl + C
di terminal). -
Jalankan Server Baru: Karena file utama kita sekarang ada di dalam folder
src
, jalankan server dengan perintah:node src/index.js
-
Uji di Postman:
- Kirim
GET
kehttp://localhost:3000/students
. - Kirim
POST
kehttp://localhost:3000/students
dengan data JSON di body.
Kamu akan melihat hasilnya sama persis seperti sebelumnya. Ini membuktikan bahwa proses refactor atau perapian kode kita telah berhasil! Proyekmu sekarang jauh lebih terstruktur dan siap untuk dikembangkan lebih lanjut.
- Kirim