Mengatasi Error saat Menghubungkan dengan Database MongoDB di Node.js

dani indra

Mengatasi Error Saat Menghubungkan dengan Database MongoDB di Node.js

Menghubungkan aplikasi Node.js dengan database MongoDB adalah langkah krusial dalam pengembangan aplikasi berbasis server. Terkadang, saat mengimplementasikan koneksi dengan MongoDB, kita dapat menghadapi berbagai jenis kesalahan. Dalam artikel ini, kita akan membahas beberapa error umum yang mungkin muncul saat menghubungkan dengan database MongoDB dan bagaimana mengatasinya.

1. Error: ‘MongoNetworkError: connection 0 to cluster0-shard-00-00.mongodb.net:27017 closed’

Error ini dapat terjadi saat mencoba terhubung dengan database MongoDB Atlas dan biasanya disebabkan oleh masalah jaringan atau konfigurasi.

Cara Mengatasi:

  • Pastikan koneksi internet Anda stabil.
  • Periksa konfigurasi koneksi MongoDB Atlas Anda. Pastikan string koneksi MongoDB Atlas sudah benar dan sudah diizinkan di MongoDB Atlas.
// Contoh string koneksi MongoDB Atlas
const mongoose = require('mongoose');

mongoose.connect(
  'mongodb+srv://<username>:<password>@cluster0.mongodb.net/test?retryWrites=true&w=majority',
  { useNewUrlParser: true, useUnifiedTopology: true }
);

2. Error: ‘MongoError: Authentication failed’

Error ini terjadi ketika MongoDB tidak dapat mengautentikasi pengguna yang dicantumkan dalam string koneksi.

Cara Mengatasi:

  • Pastikan bahwa username dan password dalam string koneksi MongoDB Atlas Anda benar.
  • Pastikan bahwa pengguna tersebut memiliki hak akses yang memadai ke database yang ditargetkan.
  • Periksa apakah string koneksi menggunakan protokol yang benar (mongodb+srv:// untuk MongoDB Atlas).

3. Error: ‘MongoNetworkError: failed to connect to server [localhost:27017] on first connect’

Error ini umumnya muncul saat mencoba menghubungkan ke server MongoDB lokal dan dapat disebabkan oleh beberapa faktor.

Cara Mengatasi:

  • Pastikan server MongoDB lokal Anda sudah berjalan.
  • Periksa port MongoDB apakah sesuai dengan yang tercantum dalam string koneksi.
// Contoh string koneksi MongoDB lokal
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/nama-database', { useNewUrlParser: true, useUnifiedTopology: true });

4. Error: ‘MongooseError: Operation users.insertOne() buffering timed out after 10000ms’

Error ini terjadi ketika operasi MongoDB tidak selesai dalam batas waktu yang ditentukan (timeout).

Cara Mengatasi:

  • Periksa koneksi ke MongoDB apakah stabil dan tidak mengalami latensi tinggi.
  • Tambahkan opsi connectTimeoutMS pada opsi koneksi untuk meningkatkan batas waktu.
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/nama-database', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
  connectTimeoutMS: 3000, // Sesuaikan dengan kebutuhan
});

5. Error: ‘MongoError: E11000 duplicate key error collection’

Error ini muncul ketika mencoba menyisipkan dokumen baru dengan nilai indeks yang sama dengan dokumen yang sudah ada.

Cara Mengatasi:

  • Pastikan Anda tidak menyisipkan dokumen dengan nilai indeks yang sudah ada dalam koleksi.
  • Jika nilai indeks tersebut seharusnya unik, pertimbangkan untuk menggunakan opsi unique pada skema MongoDB.
const userSchema = new mongoose.Schema({
  username: { type: String, required: true, unique: true },
  // ...
});

6. Error: ‘MongoError: Topology was destroyed’

Error ini muncul ketika mencoba menjalankan operasi di koneksi yang telah ditutup.

Cara Mengatasi:

  • Pastikan bahwa koneksi MongoDB dijaga dengan baik dan tidak ditutup sebelum semua operasi selesai.
  • Periksa apakah operasi MongoDB dijalankan di dalam fungsi yang dijalankan secara asinkron.
// Contoh fungsi yang dijalankan secara asinkron
async function someAsyncFunction() {
  await mongoose.connect('mongodb://localhost:27017/nama-database', { useNewUrlParser: true, useUnifiedTopology: true });

  // Lakukan operasi MongoDB

  mongoose.disconnect();
}

someAsyncFunction();

Kesimpulan

Mengelola kesalahan saat menghubungkan dengan database MongoDB di Node.js memerlukan pemahaman tentang penyebab potensial dari error tersebut. Dengan memperhatikan pesan error dan menggunakan solusi yang relevan, Anda dapat dengan cepat mengatasi masalah dan melanjutkan pengembangan aplikasi Anda. Pastikan untuk memeriksa dokumentasi MongoDB dan Mongoose untuk informasi lebih lanjut tentang pengaturan dan penanganan kesalahan yang mungkin muncul.

Leave a Comment