Featured Post
Panduan CRUD API Lengkap dengan Express + MongoDB
- Dapatkan link
- X
- Aplikasi Lainnya
Ada masa ketika gue mulai belajar backend development dan cuma ngerti satu hal: “bisa jalan di localhost berarti udah benar.” Ternyata… nggak sesimpel itu.
Apalagi ketika gue mulai membangun API untuk website dinamis pertama gue. Butuh sistem CRUD, butuh validasi, butuh database, dan tentu saja butuh struktur yang rapi agar bisa terus dikembangkan.
Waktu itu, kombinasi Express dan MongoDB adalah pasangan yang menyelamatkan gue. Simple, fleksibel, cepat dikembangkan, dan cocok banget buat pemula di dunia website development. Setelah lama menggunakannya di berbagai proyek, akhirnya gue bisa merangkum panduan CRUD API ini supaya lo bisa ikuti tanpa harus pusing.
Yuk mulai!
Kenapa Memilih Express + MongoDB?
Sebelum masuk ke coding, gue mau bahas dulu kenapa kombinasi ini disukai banyak developer.
1. Express: Minimalis tapi Fleksibel
Express itu kayak “template kosong” yang lo bisa isi sesuka hati. Nggak banyak aturan, jadi enak buat eksperimen.
2. MongoDB: Schema Fleksibel, JSON-Friendly
MongoDB simpelnya menyimpan data seperti objek JavaScript. Buat pemula di website development, ini bikin alur kerja jauh lebih natural.
3. Cepat untuk Bangun CRUD
Dengan dua tools ini, lo bisa bikin CRUD API dalam waktu kurang dari 30 menit. Serius.
Setup Project: Persiapan Express dan MongoDB
1. Inisialisasi Project
Buat folder project baru:
mkdir express-mongo-crud
cd express-mongo-crud
npm init -y
Install package utama:
npm install express mongoose cors
-
express → web framework
-
mongoose → ODM untuk MongoDB
-
cors → biar API bisa diakses frontend
2. Struktur Folder
Biar rapi, gue sarankan pakai struktur ini:
/project /models /routes server.js
Kalau di dunia website development modern, struktur rapi itu penting banget agar API gampang di-scale nanti.
Membangun CRUD API: Langkah demi Langkah
Misalnya kita bikin CRUD untuk data “Produk”.
1. Setup Koneksi MongoDB
Buka server.js:
const express = require("express");
const mongoose = require("mongoose");
const cors = require("cors");
const app = express();
app.use(cors());
app.use(express.json());
mongoose.connect("mongodb://localhost:27017/crud_db")
.then(() => console.log("MongoDB connected"))
.catch(err => console.error(err));
app.listen(3000, () => console.log("Server running on port 3000"));
2. Buat Model Produk
Buat file: models/Product.js
const mongoose = require("mongoose");
const ProductSchema = new mongoose.Schema({
name: { type: String, required: true },
price: { type: Number, required: true },
stock: { type: Number, default: 0 }
}, { timestamps: true });
module.exports = mongoose.model("Product", ProductSchema);
Model ini jadi blueprint data yang bakal kita save.
3. Buat Routes CRUD
File: routes/productRoutes.js
const express = require("express");
const router = express.Router();
const Product = require("../models/Product");
// CREATE
router.post("/", async (req, res) => {
try {
const newProduct = await Product.create(req.body);
res.json(newProduct);
} catch (err) {
res.status(400).json({ error: err.message });
}
});
// READ ALL
router.get("/", async (_req, res) => {
const products = await Product.find();
res.json(products);
});
// READ ONE
router.get("/:id", async (req, res) => {
const product = await Product.findById(req.params.id);
res.json(product);
});
// UPDATE
router.put("/:id", async (req, res) => {
const updated = await Product.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true }
);
res.json(updated);
});
// DELETE
router.delete("/:id", async (req, res) => {
await Product.findByIdAndDelete(req.params.id);
res.json({ message: "Deleted" });
});
module.exports = router;
4. Hubungkan Route ke Server
Tambahkan di server.js:
const productRoutes = require("./routes/productRoutes");
app.use("/api/products", productRoutes);
Sekarang API CRUD lo sudah lengkap:
-
POST →
/api/products -
GET →
/api/products -
GET →
/api/products/:id -
PUT →
/api/products/:id -
DELETE →
/api/products/:id
Testing CRUD API
Gue biasanya pakai Postman atau Thunder Client.
CREATE (POST)
Body:
{
"name": "Keyboard Mechanical",
"price": 350000,
"stock": 20
}
READ ALL (GET)
Hasilnya list semua produk.
UPDATE (PUT)
Body:
{
"price": 320000
}
DELETE
Cukup panggil endpoint-nya.
Dalam proses website development, testing ini wajib rutin dilakukan biar API lo nggak error waktu dipakai frontend.
Error Handling dan Validasi Sederhana
API tanpa validasi bakal bikin data kacau. Minimal kasih error handling sederhana.
Contoh validasi di POST:
if (!req.body.name) {
return res.status(400).json({ error: "Name is required" });
}
Atau manfaatkan built-in validation dari Mongoose.
Tips Membuat CRUD API Lebih Profesional
Seiring waktu, gue belajar beberapa hal yang bikin API lebih solid.
1. Gunakan Controller File Terpisah
Route jadi bersih.
2. Tambahkan Middleware Error Handling
Biar error lebih mudah ditangani.
3. Gunakan ENV untuk Koneksi DB
Pakai dotenv agar aman:
MONGO_URI=xxxx
4. Buat Pagination
Untuk list panjang, pagination wajib.
5. Tambahkan Authentication JWT
Karena sebagian besar API dalam website development butuh keamanan.
Kelebihan Express + MongoDB untuk Website Development
Setelah bertahun-tahun pakai kombinasi ini, gue bisa bilang:
-
Cepat untuk development awal
-
Sangat fleksibel
-
Tidak terlalu banyak boilerplate
-
Cocok untuk web app skala kecil-menengah
-
Banyak tutorial & komunitas
Hal ini bikin CRUD API dengan Express + MongoDB jadi pilihan pertama banyak developer.
Kesimpulan
Membangun CRUD API dengan Express dan MongoDB itu jauh lebih mudah dibanding kelihatannya. Lo cukup:
-
Setup Express
-
Koneksi MongoDB dengan Mongoose
-
Buat model
-
Buat route CRUD
-
Test API
Dan semuanya sudah cukup untuk membangun backend dasar sebuah website atau web app dinamis.
Dalam dunia website development, fondasi CRUD ini penting banget karena jadi dasar untuk fitur yang lebih besar seperti authentication, dashboard admin, e-commerce, dan sebagainya.
Komentar