Menghubungkan Node.js ke Database MongoDB menggunakan Mongoose - Perwira Learning Center
1. Latar Belakang
Dalam pengembangan backend menggunakan Node.js dan MongoDB, kita memerlukan cara yang mudah dan terstruktur untuk mengelola data. Secara langsung, MongoDB bisa digunakan tanpa schema yang ketat. Namun, untuk membuat kode lebih rapi dan terorganisir, kita biasanya menggunakan Mongoose.
Mongoose adalah ODM (Object Data Modeling) untuk MongoDB dan Node.js. Mongoose membantu kita membuat schema, validasi data, serta mempermudah proses CRUD.
Dengan Mongoose, pengelolaan database menjadi lebih terstruktur dan cocok untuk proyek skala kecil maupun besar.
- Node.js
- MongoDB
- NPM
- Text Editor (VSCode)
index.js:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
app.use(express.json());
mongoose.connect("mongodb://127.0.0.1:27017/dbbelajar")
.then(() => console.log("Database terhubung"))
.catch((err) => console.log(err));
app.listen(3000, () => {
console.log("Server berjalan di port 3000");
});
Penjelasan:
-
mongoose.connect() → menghubungkan aplikasi ke MongoDB
-
dbbelajar → nama database
const userSchema = new mongoose.Schema({
nama: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
umur: {
type: Number,
min: 1
}
}, { timestamps: true });
const User = mongoose.model("User", userSchema);
Penjelasan:
-
required → wajib diisi
-
unique → tidak boleh sama
-
min → batas minimal angka
-
timestamps → otomatis membuat createdAt dan updatedAt
app.post("/users", async (req, res) => {
try {
const user = await User.create(req.body);
res.json(user);
} catch (error) {
res.status(400).json(error);
}
});
app.get("/users", async (req, res) => {
const users = await User.find();
res.json(users);
});
app.put("/users/:id", async (req, res) => {
const user = await User.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true }
);
res.json(user);
});
app.delete("/users/:id", async (req, res) => {
await User.findByIdAndDelete(req.params.id);
res.json({ message: "Data berhasil dihapus" });
});
3.4 Cara Menjalankan Server
Tambahkan script:
"scripts": {
"start": "nodemon index.js"
}Lalu jalankan:
npm start
Menggunakan Mongoose dalam proyek Node.js memberikan banyak keuntungan:
-
Struktur data lebih jelas dengan schema
-
Ada validasi otomatis
-
Kode lebih rapi dan mudah dikelola
-
Mendukung fitur seperti middleware dan populate (relasi antar koleksi)
Jika dibandingkan dengan menggunakan MongoDB tanpa Mongoose, maka:
-
Tanpa Mongoose → lebih fleksibel tapi kurang terstruktur
-
Dengan Mongoose → lebih aman dan cocok untuk proyek nyata
Mongoose sangat direkomendasikan untuk pemula yang ingin membuat backend profesional dengan Node.js dan MongoDB.
