Wednesday, 26 November 2025

Tutorial MongoDB connect to express JS use Driver MongoDB v7.0.0

 

Dalam pengembangan aplikasi backend dengan Node.js dan Express, MongoDB merupakan salah satu pilihan database NoSQL yang sangat populer. Banyak developer memilih menggunakan Mongoose untuk mengelola database karena menyediakan schema, validasi, dan abstraction layer. Namun, sebagian lainnya lebih menyukai menggunakan MongoDB Native Driver karena sifatnya yang lebih ringan, fleksibel, dan memberikan kontrol penuh terhadap interaksi langsung dengan database. Artikel ini akan membahas cara membuat koneksi MongoDB pada aplikasi Express menggunakan driver resmi MongoDB, mulai dari instalasi hingga konfigurasi koneksi yang baik dan aman.

1. Mengapa Menggunakan MongoDB Native Driver?

Sebelum masuk ke langkah-langkah teknis, penting untuk memahami alasan memilih MongoDB Driver dibanding Mongoose:

    a. Lebih ringan dan tanpa lapisan abstraksi tambahan

Driver ini berkomunikasi langsung dengan database tanpa schema enforcement. Cocok untuk proyek yang membutuhkan fleksibilitas atau performa tinggi.

    b. Kontrol penuh terhadap query dan operasi database 

Karena tidak ada ODM yang membungkus query, developer lebih bebas melakukan operasi kompleks.

    c. Lebih cocok untuk arsitektur mikroservis 

Banyak mikroservis modern menggunakan driver native agar footprint aplikasi lebih kecil.

    4. Mendukung penuh fitur terbaru MongoDB 

Kadang fitur baru MongoDB tersedia lebih awal pada driver dibanding di ODM seperti Mongoose.

2. Persiapan Proyek 

Pastikan Node.js dan npm sudah terinstal. Mulailah dengan membuat direktori baru:


mkdir express-mongodb-driver
cd express-mongodb-driver

Inisialisasi proyek:


npm init -y

Instal Express dan MongoDB driver:


npm install express mongodb

Jika ingin mempermudah pengembangan, install nodemon:


npm install --save-dev nodemon

3. Struktur Proyek


express-mongodb-driver/
│
├── server.js
└── config/
    └── database.js

File database.js akan menyimpan konfigurasi koneksi database. 

4. Membuat Koneksi MongoDB

Buat file config/database.js berisi:  


const { MongoClient } = require('mongodb');

const uri = 'mongodb://localhost:27017';
const client = new MongoClient(uri);

let db;

const connectDB = async () => {
    try {
        await client.connect();
        console.log('Berhasil terhubung ke MongoDB');

        db = client.db('database_name'); // nama database
    } catch (error) {
        console.error('Gagal terhubung ke MongoDB:', error.message);
        process.exit(1);
    }
};

const getDB = () => {
    if (!db) {
        throw new Error('Database belum terkoneksi!');
    }
    return db;
};

module.exports = { connectDB, getDB };

Penjelasan:

  • MongoClient adalah class inti untuk membuat koneksi ke server MongoDB.
  • client.connect() digunakan untuk membuka koneksi.
  • db = client.db('nama_database') menyimpan reference database.
  • Fungsi getDB() berguna agar database bisa dipanggil dari file lain tanpa membuat koneksi baru.

5. Menghubungkan MongoDB pada Express

Buka file server.js dan isi seperti berikut:


const express = require('express');
const { connectDB, getDB } = require('./config/database');

const app = express();
app.use(express.json());

// Koneksi ke database
connectDB();

app.get('/', (req, res) => {
    res.send('Aplikasi Express dengan MongoDB Native Driver');
});

// Contoh route yang mengambil data dari database
app.get('/user', async (req, res) => {
    try {
        const db = getDB();
        const users = await db.collection('users').find().toArray();
        res.json(users);
    } catch (error) {
        res.status(500).json({ message: error.message });
    }
});

const PORT = 3000;
app.listen(PORT, () => console.log(`Server berjalan pada port ${PORT}`));

Beberapa hal penting:

  • Kita memanggil connectDB() saat aplikasi dijalankan.
  • Untuk mengakses MongoDB di route Express, kita memanggil getDB() untuk mengambil instance database yang sudah terkoneksi.
  • Contoh route /users menunjukkan cara mengambil data dari koleksi menggunakan driver native.

6. Menjalankan Aplikasi

Jalankan server dengan:  


node server.js

Atau menggunakan nodemon:


npx nodemon server.js

Jika berhasil, Anda akan melihat:

$ npx nodemon server.js
[nodemon] 3.1.11
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node server.js`
Server berjalan pada port 3000
Berhasil terhubung ke MongoDB

Meskipun databasenya belum dibuat, mongodb akan membuat otomatis sesuai dengan nama database pada konfigurasi koneksi.

Jika kalian akses browset localhost:3000/user, akan kosong karna memamng datanya tidak ada, untuk membuktikannya silahkan buatk route baru misal user-add:


app.get('/user-add', async(req, res) => {
    try {
        const db = getDB();
        const users = await db.collection('users').insertOne({name:'Naruto', email:'naruto@konoha.com'});
        res.json(users);
    } catch (error) {
        res.status(500).json({ message: error.message });
    }
});

akses browser localhost:3000/user-add, setelah itu buka lagi localhost:3000/user, maka datanya akan ada sesuai yang di tambahkan sebelumnya.

7. Kesimpulan

Menggunakan MongoDB Native Driver pada aplikasi Express memberikan fleksibilitas maksimum dan performa lebih ringan dibanding menggunakan ODM seperti Mongoose. Walaupun Anda tidak mendapatkan fitur seperti schema, model, atau validasi otomatis, Anda memperoleh kontrol penuh atas operasi database dan dapat memanfaatkan fitur terbaru MongoDB tanpa menunggu update library lain.

Pendekatan ini cocok untuk aplikasi kecil, backend dengan performa tinggi, atau mikroservis yang membutuhkan jejak memori minimal. Dengan struktur yang modular, seperti memisahkan koneksi database ke dalam file khusus, aplikasi menjadi lebih rapi dan mudah diperluas.

Untuk melihat artikel yang lain bisa klik DisiniUntuk versi yang menggunakan Mongoose bisa cek Disini

No comments:

Post a Comment