membuat api dengan express dan mongodb

Membuat API dengan Express dan MongoDB

Membangun aplikasi modern yang menghadirkan layanan berbasis data memerlukan fondasi yang kuat. Dalam artikel ini, kita akan menjelaskan langkah-langkah mendetail tentang cara membuat API dengan Express dan MongoDB.

Dengan mengikuti panduan ini, Anda akan memahami bagaimana mengintegrasikan teknologi server sisi dengan basis data NoSQL yang kuat, membuka peluang untuk mengembangkan aplikasi yang tangguh dan responsif.

Inisialisasi Proyek

Pertama, buat direktori proyek dan inisialisasi proyek. Buka terminal Anda dan jalankan perintah berikut:

mkdir express-mongodb
cd express-mongodb
npm init

Ikuti instruksi yang diberikan untuk mengisi informasi proyek. Setelah selesai, akan ada sebuah file package.json di direktori proyek Anda.

Instalasi Modul yang Dibutuhkan

Instal modul-modul yang dibutuhkan untuk membangun API dengan Node.js dan MongoDB, seperti Express.js dan Mongoose (library ODM untuk MongoDB). Jalankan perintah berikut:

npm install express mongoose

Buat Server Express

Buat berkas JavaScript (misalnya server.js) yang akan menjadi server Express Anda. Kemudian, buat server Express dengan kode berikut:

const express = require('express');
const mongoose = require('mongoose');

const app = express();
const port = process.env.PORT || 3000;

// Koneksi ke database MongoDB
mongoose.connect('mongodb://localhost/nama_database', { useNewUrlParser: true, useUnifiedTopology: true });

app.listen(port, () => {
  console.log(`Server berjalan di port ${port}`);
});

Membuat Model MongoDB

Buat model MongoDB untuk koleksi yang akan Anda gunakan. Contoh:

const mongoose = require('mongoose');

const schema = new mongoose.Schema({
  field1: String,
  field2: Number,
  // Tambahkan bidang lain sesuai kebutuhan
});

const Model = mongoose.model('NamaModel', schema);

module.exports = Model;

Buat Routing API

Tambahkan routing API ke berkas server Anda. Contoh:

const express = require('express');
const router = express.Router();
const Model = require('./model'); // Ganti dengan path yang sesuai

// Mendapatkan semua data
router.get('/data', async (req, res) => {
  try {
    const data = await Model.find();
    res.json(data);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Menambahkan data baru
router.post('/data', async (req, res) => {
  try {
    const newData = new Model(req.body);
    const savedData = await newData.save();
    res.json(savedData);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Mendapatkan satu data berdasarkan ID
router.get('/data/:id', async (req, res) => {
  try {
    const data = await Model.findById(req.params.id);
    if (!data) {
      return res.status(404).json({ message: 'Data tidak ditemukan' });
    }
    res.json(data);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Mengubah data berdasarkan ID
router.put('/data/:id', async (req, res) => {
  try {
    const updatedData = await Model.findByIdAndUpdate(req.params.id, req.body, { new: true });
    if (!updatedData) {
      return res.status(404).json({ message: 'Data tidak ditemukan' });
    }
    res.json(updatedData);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

// Menghapus data berdasarkan ID
router.delete('/data/:id', async (req, res) => {
  try {
    const deletedData = await Model.findByIdAndRemove(req.params.id);
    if (!deletedData) {
      return res.status(404).json({ message: 'Data tidak ditemukan' });
    }
    res.json(deletedData);
  } catch (err) {
    res.status(500).json({ error: err.message });
  }
});

module.exports = router;

Dengan menambahkan routing ini, Anda memiliki operasi CRUD lengkap (Create, Read, Update, Delete) untuk koleksi data Anda. Anda dapat mengaksesnya dengan mengirimkan permintaan ke endpoint seperti berikut:

  • GET /data: Untuk mendapatkan semua data.
  • GET /data/:id: Untuk mendapatkan satu data berdasarkan ID.
  • POST /data: Untuk menambahkan data baru.
  • PUT /data/:id: Untuk mengubah data berdasarkan ID.
  • DELETE /data/:id: Untuk menghapus data berdasarkan ID.

Menggunakan Middleware dan Routing API

Tambahkan middleware dan routing API ke server Express Anda:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const port = process.env.PORT || 3000;

mongoose.connect('mongodb://localhost/nama_database', { useNewUrlParser: true, useUnifiedTopology: true });

app.use(bodyParser.json());
app.use('/api', require('./router')); // Ganti dengan path yang sesuai

app.listen(port, () => {
  console.log(`Server berjalan di port ${port}`);
});

Menjalankan Server

Jalankan server Anda dengan menjalankan perintah:

node server.js

Selamat, Anda sekarang memiliki dasar-dasar untuk membuat API dengan Node.js dan MongoDB. Anda dapat menambahkan routing tambahan, middleware, validasi, dan banyak fitur lainnya sesuai kebutuhan proyek Anda. Juga, pastikan Anda menggantikan nama_database, NamaModel, dan bidang lain dengan nilai sesuai proyek Anda.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top