Showing posts with label MongoDB. Show all posts
Showing posts with label MongoDB. Show all posts

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

Tutorial MongoDB connect to express JS use Mongoose 9.0.0

 

Dalam pengembangan aplikasi berbasis Node.js, penggunaan MongoDB sebagai database NoSQL sangat populer karena fleksibel, cepat, dan mudah diintegrasikan dengan berbagai framework JavaScript. Salah satu pendekatan paling umum untuk mengelola koneksi dan operasi database MongoDB dalam aplikasi Express adalah melalui Mongoose, sebuah Object Data Modeling (ODM) yang menyediakan struktur lebih terorganisasi untuk bekerja dengan MongoDB. Artikel ini akan membahas langkah-langkah membuat koneksi database MongoDB pada Express menggunakan Mongoose, mulai dari instalasi hingga konfigurasi koneksi dan penanganan error.

Ada 2 cara dalam membuat koneksi dari express ke mongodb, yaitu dengan cara minginstal driver mongoose, atau install driver mongodb. Pada artikel ini kita akan membahas koneksi dengan menggunakan driver mongoose.

1. Mengapa Menggunakan Mongoose? 

Mongoose menawarkan beberapa kelebihan penting, antara lain:

  • Schema-based Modeling : Anda bisa menentukan struktur data berupa schema, sehingga data lebih terorganisasi.
  • Validasi Otomatis : Mongoose menyediakan validator untuk memastikan data sesuai sebelum dimasukkan ke database.
  • Middleware / Hooks : Sangat berguna untuk menjalankan operasi sebelum atau sesudah aksi tertentu seperti save, update, dsb.
  • Query Builder yang Mudah Digunakan : Mongoose menyediakan API yang mudah dibaca dan digunakan.

Dengan fitur-fitur tersebut, Mongoose menjadi pilihan utama bagi developer Node.js yang ingin mengelola MongoDB dengan lebih rapi dan terstruktur. 

2. Persiapan Proyek

Pertama kali pastikan kalian sudah menginstall MongoDB Community Server jika belum bisa cek Disini, selanjutnya pastikan Node.js dan npm sudah terinstal. Buat direktori baru untuk proyek:


mkdir express-mongoose
cd express-mongoose

Inisialisasi proyek:


npm init -y

Kemudian instal Express dan Mongoose:


npm install express mongoose

Untuk kebutuhan pengembangan, Anda juga dapat menginstal nodemon:


npm install --save-dev nodemon

agar server pada express nanti otomatis reload tanpa harus jalankan ulang server

3. Struktur Proyek

Gunakan struktur sederhana seperti berikut:


express-mongoose-app/
│
├── server.js
└── config/
    └── database.js

Folder config digunakan untuk menyimpan konfigurasi koneksi database agar lebih rapi.

4. Membuat File Koneksi MongoDB

Buat file config/database.js dan isi dengan kode berikut:


const mongoose = require('mongoose');

const connectDB = async()=>{
    try {
      //  digunakan untuk memaksa Mongoose agar hanya mempertimbangkan field yang ada dalam skema saat melakukan query ke basis data
      mongoose.set('strictQuery', true);

      //koneksi ke mongodb
      await mongoose.connect('mongodb://localhost:27017/database_name');
      console.log('Berhasil terhubung ke MongoDB');
    } catch (error) {
        console.error('Gagal terhubung ke MongoDB:', error.message);
    }
};

module.exports = connectDB;

Jika Anda menggunakan MongoDB Atlas, cukup ganti URL koneksi menjadi connection string dari Atlas.

5. Menghubungkan Database pada Express

Sekarang buka file server.js dan isi sebagai berikut:


const express = require('express');
const connectDB = require('./config/database');

const app = express();

// Middleware untuk parsing JSON
app.use(express.json());

// Panggil koneksi database
connectDB();

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

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

Saat server dijalankan, Express akan otomatis menghubungkan diri ke MongoDB sebelum menerima request.

6. Menjalankan Server

Jalankan server dengan:


node server.js

Atau jika menggunakan nodemon:


npx nodemon server.js

Jika koneksi berhasil, Anda akan melihat output:


$ 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

7. Kesimpulan

Menghubungkan Express dengan MongoDB menggunakan Mongoose memberikan banyak keuntungan, terutama dalam hal struktur kode, validasi data, dan kemudahan penggunaan. Dengan memisahkan konfigurasi koneksi ke dalam file khusus, aplikasi menjadi lebih modular dan mudah dikembangkan. Langkah-langkah di atas dapat digunakan sebagai dasar dalam membangun aplikasi backend yang lebih kompleks termasuk penambahan model, controller, dan rute API.

untuk melihat artikel yang lain bisa klik Disiniuntuk versi yang menggunakan driver mongodb bisa lihat Disini