Tutorial: Membuat API CRUD dengan Node.js dan MongoDB

 

Langkah-langkah:

1. Buat Database dan Collection di MongoDB:
  • Buka MongoDB Compass dan buat database dengan nama polibest.
  • Buat collection dengan nama mahasiswa.
  • Isi collection dengan data contoh: nama, umur, jurusan, dan ipk.









  • 2. Buka VSCode:

    • Buka folder proyek Anda, arahkan ke C:\xampp\htdocs (atau direktori pilihan Anda) dan buka terminal



    3. Buat Direktori Baru untuk Proyek:


    4. Inisialisasi npm:

    • Jalankan perintah berikut untuk membuat file package.json:

    5. Instal Dependency yang Diperlukan:

    • Instal semua package yang diperlukan untuk proyek ini:


    6. Struktur Proyek

    Buat struktur folder berikut untuk proyek Anda:



    7. Konfigurasi server.js

    Buat file server.js di direktori utama untuk menghubungkan ke MongoDB dan memulai server Express.



    8. Buat Model Mahasiswa

    Buat file mahasiswa.js di dalam folder models/. Ini adalah model untuk koleksi mahasiswa di MongoDB.


    9. Buat Route CRUD mahasiswa.js

    Buat file mahasiswa.js di folder routes/ untuk mendefinisikan semua operasi CRUD.

    // routes/mahasiswa.js
    const express = require("express");
    const router = express.Router();
    const Mahasiswa = require("../models/mahasiswa");

    // 1. Tampilkan Semua Mahasiswa (GET)
    router.get("/", async (req, res) => {
      try {
        const mahasiswa = await Mahasiswa.find();
        res.json(mahasiswa);
      } catch (err) {
        res.status(500).json({ message: err.message });
      }
    });

    // 2. Tampilkan Satu Mahasiswa Berdasarkan ID (GET)
    router.get("/:id", async (req, res) => {
      try {
        const mahasiswa = await Mahasiswa.findById(req.params.id);
        if (!mahasiswa)
          return res.status(404).json({ message: "Mahasiswa not found" });
        res.json(mahasiswa);
      } catch (err) {
        res.status(500).json({ message: err.message });
      }
    });

    // 3. Tambah Mahasiswa Baru (POST)
    router.post("/", async (req, res) => {
      const mahasiswa = new Mahasiswa({
        nama: req.body.nama,
        umur: req.body.umur,
        jurusan: req.body.jurusan,
        ipk: req.body.ipk,
      });
      try {
        const newMahasiswa = await mahasiswa.save();
        res.status(201).json(newMahasiswa);
      } catch (err) {
        res.status(400).json({ message: err.message });
      }
    });

    // 4. Update Data Mahasiswa (PATCH)
    router.patch("/:id", async (req, res) => {
      try {
        const mahasiswa = await Mahasiswa.findById(req.params.id);
        if (!mahasiswa)
          return res.status(404).json({ message: "Mahasiswa not found" });

        // Update field yang tersedia
        if (req.body.nama != null) mahasiswa.nama = req.body.nama;
        if (req.body.umur != null) mahasiswa.umur = req.body.umur;
        if (req.body.jurusan != null) mahasiswa.jurusan = req.body.jurusan;
        if (req.body.ipk != null) mahasiswa.ipk = req.body.ipk;

        const updatedMahasiswa = await mahasiswa.save();
        res.json(updatedMahasiswa);
      } catch (err) {
        res.status(400).json({ message: err.message });
      }
    });

    // 5. Hapus Mahasiswa (DELETE)
    router.delete("/:id", async (req, res) => {
      try {
        const mahasiswa = await Mahasiswa.findById(req.params.id);
        if (!mahasiswa)
          return res.status(404).json({ message: "Mahasiswa not found" });
        await mahasiswa.remove();
        res.json({ message: "Mahasiswa deleted" });
      } catch (err) {
        res.status(500).json({ message: err.message });
      }
    });

    module.exports = router;


    10. Jalankan Server

    Untuk menjalankan server, gunakan nodemon agar server otomatis restart setiap kali ada perubahan kode.



    11. Download Aplikasi Postman

    Download Postman melalui websitenya dan lakukan installasi


    12. Testing API dengan Postman

    Sekarang Anda bisa menggunakan Postman untuk menguji setiap endpoint API Anda:

    1. GET Semua Mahasiswa:

    • Method: GET
    • URL: http://localhost:3000/mahasiswa


    2. GET Mahasiswa Berdasarkan ID:

    • Method: GET
    • URL: http://localhost:3000/mahasiswa/:id

    3. POST Tambah Mahasiswa Baru:

    • Method: POST
    • URL: http://localhost:3000/mahasiswa
    • Body (raw JSON):


    4. PATCH Update

     Mahasiswa: - Method: PATCH - URL: http://localhost:3000/mahasiswa/:id - Body (raw JSON): json { "nama": "Andi", "umur": 23 }



    5. DELETE 

    Hapus Mahasiswa: - Method: DELETE - URL: http://localhost:3000/mahasiswa/:id 













    Komentar