CRUD adalah singkatan dari Create, Read, Update, dan Delete, yaitu empat operasi dasar yang wajib dikuasai ketika membuat aplikasi backend. Keempat operasi ini memungkinkan kita untuk mengelola data dengan efektif dan efisien.
Pada artikel ini, kita akan belajar cara membuat API CRUD sederhana menggunakan Node.js dengan framework Express dan database MongoDB yang diakses menggunakan Mongoose. Tutorial ini cocok untuk kamu yang baru mulai belajar backend development atau ingin menambah skill dalam pengelolaan data.
CRUD adalah pondasi utama dalam pengelolaan data di aplikasi berbasis database. Setiap aplikasi, baik itu website, mobile, atau sistem lainnya, pasti membutuhkan CRUD untuk:
Menguasai CRUD adalah langkah awal yang penting sebelum kamu beranjak ke topik yang lebih kompleks seperti autentikasi, authorization, atau arsitektur microservices.
Sebelum mulai coding, kita buat dulu folder project dan inisialisasi project Node.js.
mkdir crud-node-mongodb
cd crud-node-mongodb
npm init -y
npm install express mongoose body-parser
express
: framework web untuk Node.jsmongoose
: ODM (Object Data Modeling) untuk MongoDBbody-parser
: middleware untuk parsing request bodyBuat file app.js
dan tambahkan kode berikut untuk menghubungkan aplikasi ke database MongoDB lokal:
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/mydb', {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log('MongoDB connected'))
.catch(err => console.error('MongoDB connection error:', err));
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Schema adalah struktur data untuk mendefinisikan bagaimana data disimpan di MongoDB. Misalnya, kita ingin membuat data user dengan atribut name
, email
, dan age
.
Tambahkan kode berikut di app.js
setelah koneksi MongoDB:
const userSchema = new mongoose.Schema({
name: String,
email: String,
age: Number,
});
const User = mongoose.model('User', userSchema);
Sekarang kita implementasikan route API untuk operasi CRUD.
app.post('/users', async (req, res) => {
try {
const user = new User(req.body);
await user.save();
res.status(201).send(user);
} catch (error) {
res.status(400).send(error);
}
});
Ambil semua user:
app.get('/users', async (req, res) => {
try {
const users = await User.find();
res.send(users);
} catch (error) {
res.status(500).send(error);
}
});
Ambil user berdasarkan ID:
app.get('/users/:id', async (req, res) => {
try {
const user = await User.findById(req.params.id);
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send(user);
} catch (error) {
res.status(500).send(error);
}
});
app.put('/users/:id', async (req, res) => {
try {
const user = await User.findByIdAndUpdate(req.params.id, req.body, { new: true, runValidators: true });
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send(user);
} catch (error) {
res.status(400).send(error);
}
});
app.delete('/users/:id', async (req, res) => {
try {
const user = await User.findByIdAndDelete(req.params.id);
if (!user) return res.status(404).send({ message: 'User tidak ditemukan' });
res.send({ message: 'User berhasil dihapus' });
} catch (error) {
res.status(500).send(error);
}
});
Untuk mencoba API ini, kamu bisa gunakan tools seperti Postman atau Insomnia:
name
, email
, dan age
untuk tambah data user baruSetelah berhasil membuat CRUD dasar, kamu bisa kembangkan API dengan fitur tambahan, seperti:
joi
atau express-validator
)CRUD adalah fondasi yang harus dikuasai sebelum masuk ke pengembangan backend lebih lanjut. Dengan Node.js, Express, dan MongoDB, kamu bisa membangun API yang cepat dan scalable. Tutorial ini memberikan gambaran dasar sekaligus contoh kode yang mudah dipahami dan langsung bisa kamu coba.
Kalau kamu ingin belajar lebih lengkap dan mendalam, termasuk praktik terbaik serta proyek nyata, Nusacodes menyediakan bootcamp programming yang siap membantu kamu jadi developer handal!