Struktur folder yang terorganisir merupakan kunci penting dalam pengembangan aplikasi web kompleks.Banyak developer yang mengalami kesulitan dalam mengelola kode aplikasi web mereka, terutama ketika projeknya semakin besar dan kompleks. Artikel ini akan mengupas tuntas tentang struktur folder yang rapi dan terorganisir untuk aplikasi Express.js Anda. Dengan struktur folder yang tepat, kode Anda akan menjadi lebih mudah dipahami, dipelihara, dan dikembangkan oleh Anda maupun tim Anda.
Dalam konteks aplikasi Express.js, struktur folder yang umum digunakan adalah dengan memisahkan model, route, dan controller ke dalam folder terpisah. Hmm lalu apa model, route, dan controller itu? berikut penjelasan singkatnya.
- ModelModel dalam konteks aplikasi Express.js adalah representasi dari entitas atau data dalam aplikasi. Ini biasanya berhubungan langsung dengan database atau sumber daya eksternal lainnya. Model bertanggung jawab untuk berinteraksi dengan basis data, melakukan operasi seperti pengambilan, penyimpanan, pembaruan, dan penghapusan data. Dalam struktur MVC, model mengimplementasikan logika bisnis dan aturan validasi untuk data aplikasi. Contohnya, jika Anda memiliki entitas "User" dalam aplikasi Anda, Anda akan memiliki model "User" yang berisi metode untuk berinteraksi dengan data pengguna seperti membuat pengguna baru, mengambil daftar pengguna, atau memperbarui detail pengguna.
- RouteRoute menangani permintaan HTTP dari klien dan menentukan cara menanggapi permintaan tersebut. Ini adalah bagian dari aplikasi yang menentukan bagaimana aplikasi Anda berinteraksi dengan permintaan pengguna dan menentukan apa yang harus dilakukan ketika permintaan tertentu diterima. Route biasanya bertanggung jawab untuk memanggil fungsi kontrol yang sesuai dan kemudian merespons dengan hasilnya. Misalnya, ketika pengguna mengakses URL tertentu di aplikasi Anda, route akan menentukan fungsi kontrol mana yang harus dipanggil untuk menangani permintaan tersebut dan merespons dengan data yang sesuai.
- ControllerController adalah bagian dari aplikasi yang berisi logika untuk menangani permintaan dan merespons dengan data yang sesuai. Kontroller biasanya dipanggil oleh route setelah permintaan diterima. Ini adalah tempat di mana operasi bisnis sebenarnya dilakukan. Kontroller bertanggung jawab untuk memproses input, berinteraksi dengan model untuk mengambil atau menyimpan data, dan kemudian merespons dengan hasilnya. Misalnya, jika Anda memiliki permintaan untuk menampilkan halaman profil pengguna, kontroler akan mengambil data profil dari model, memformatnya sesuai kebutuhan, dan kemudian merespons dengan halaman profil yang sesuai.
Okee, jika teman-teman sudah paham ketiga nya, maka sekarang saatnya kita membuat struktur foldernya serta menampilkan data dari database Mysql.
Langkah 1 - Silahkan Buat Struktur Folder Seperti Dibawah
Langkah 2 - Membuat File User dan Post di Folder Models
Kemudian selanjutnya adalah melakukan instalasi package uuid, moment, dan bcrypt. UUID adalah identifier unik yang digunakan dalam pengembangan perangkat lunak untuk mengidentifikasi entitas tanpa harus bergantung pada penyimpanan sentral atau koordinasi antara entitas yang mengeluarkan identifikasi. Moment.js adalah sebuah library JavaScript yang digunakan untuk memanipulasi, menampilkan, dan memformat tanggal dan waktu dalam JavaScript. Ini membuatnya lebih mudah untuk bekerja dengan tanggal dan waktu dalam berbagai format dan zona waktu. Sedangkan Bcrypt adalah sebuah library kriptografi yang digunakan untuk hashing password dalam aplikasi web dan mobile.
Gunakan perintah dibawah untuk menginstall ketiga package diatas.
- Package UUID
Selanjutnya adalah pada file UserModel.js kita akan membuat fungsi yang nantinya akan digunakan untuk melakukan register user. Pada fungsi register terdapat parameter userData yang nantinya akan menerima data dari controller user serta terdapat query SQL untuk memasukkan data ke dalam database MySQL. Atribut dan Value harus sesuai dengan yang terdapat didalam tabel Users MySQL, jika teman-teman lupa bisa mengunjungi artikel berikut Konfigurasi Mysql dalam 3 Langkah mudah ke dalam Aplikasi Express js. Berikut merupakan kode lengkapnya.
const connection = require("../db.js");
const register = async (userData) => {
try {
const query = `INSERT INTO users (id_user,name,
username,email,password,created_at,updated_at) VALUES (?,?,?,
?,?,?,?)`;
const [result] = await connection.execute(query, [
userData.id,
userData.name,
userData.username,
userData.email,
userData.password,
userData.createdAt,
userData.createdAt,
]);
return result;
} catch (error) {
console.log(error);
}
};
module.exports = { register };
Langkah 3 - Membuat File User dan Post Controller
const userModel = require("../models/UserModel.js");
const { v4: uuidv4 } = require("uuid");
const bcrypt = require("bcrypt");
const moment = require("moment");
const regsiter = async (req, res) => {
try {
const data = req.body;
const salt = await bcrypt.genSalt();
const hashPawword = await bcrypt.hash(data.password, salt);
const createdAt = await moment().format("YYYY-MM-DD HH:mm:
ss");
const userData = {
id: uuidv4(),
name: data.name,
username: data.username,
email: data.email,
password: hashPawword,
createdAt,
};
const result = await userModel.register(userData);
console.log(result);
res.json({ message: "success" });
} catch (error) {
console.log(error);
}
};
module.exports = { regsiter };
Langkah 4 - Membuat File UserRoutes
Pada file route ini kita akan membuat rute ataupun endpoint dari url dan juga menggunakan fungsi yang sudah dibuat pada folder controller. Berikut implementasi lengkapnya.
const userController = require("../controllers/UserController.js");
const router = require("express").Router();
router.post("/register", userController.regsiter);
module.exports = router;
Langkah 5 - Memperbarui kode pada file index.js
Silahkan teman-teman ubah kode file index.js menjadi seperti berikut ini.
const express = require("express");
const app = express();
const userRoutes = require("./routes/UserRoutes.js");
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/api", userRoutes);
app.listen(8000, () => {
console.log("success running");
});
Langkah 6 - Melakukan API Testing dengan Postman
Langkah terakhir adalah melakukan testing dengan Postman, Postman adalah alat pengembangan yang populer digunakan oleh para pengembang perangkat lunak untuk menguji, mengelola, dan menguji API (Antarmuka Pemrograman Aplikasi).
Semoga artikel ini memberikan wawasan yang berguna dalam memahami konsep dasar penggunaan Express.js dalam menangani routing dalam aplikasi Node.js Anda. Teruslah belajar dan eksplorasi, dan semangat terus.
Comments
Post a Comment