Lompat ke konten utama
←

Backend Node.js Dasar: Rute, Middleware, dan Pengujian

Pelajaran 11 dari 16

Data: repositori, pagination, dan filter

Repositori di memori dan CRUD

Setelah pelajaran ini kamu bisa menulis repositori di memori dengan Map dalam closure yang memberi id dari penghitung dan mengembalikan salinan, lalu menerjemahkan hasilnya menjadi respons 200, 201, 204, dan 404.

±14 menitDiperiksa 23 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

Handler yang langsung mengolah larik global sulit diuji dan sulit dipindah ke basis data. Pola repositori menyembunyikan penyimpanan di balik beberapa method: daftar, ambil, tambah, ubah, hapus. Handler hanya memanggil method itu, sehingga penyimpanannya bisa diganti tanpa mengubah handler. Di kelas ini penyimpanannya Map di memori. MDN mencatat Map menyimpan pasangan kunci–nilai dengan kunci unik dan mengingat urutan sisip. Isinya hilang saat proses Node berhenti; data yang harus bertahan disimpan di basis data.

function buatRepoPelanggan() {
  const isi = new Map();
  let berikut = 1;
  return {
    tambah(data) {
      const baru = { ...data, id: berikut++ };
      isi.set(baru.id, baru);
      return { ...baru };
    },
    ambil(id) {
      const p = isi.get(id);
      return p ? { ...p } : null;
    },
  };
}

Tiga keputusan membuat repositori itu aman dipakai. Nomor id diberikan dari penghitung di dalam closure, bukan dari panjang larik, sehingga nomor yang sudah dihapus tidak dipakai ulang. Field id kiriman klien ditimpa. Setiap method mengembalikan salinan; spread membuat salinan dangkal (MDN), sehingga kode yang mengubah objek hasil ambil tidak ikut mengubah isi penyimpanan.

Handler menerjemahkan hasil repositori menjadi status: null dari ambil menjadi 404, tambah menjadi 201 dengan Location menunjuk item baru (RFC 9110 §15.3.2), dan hapus yang berhasil menjadi 204 tanpa badan, karena MDN menyatakan respons 204 tidak boleh membawa isi. Mulai modul ini, middleware JSON dianggap sudah mengurai badan ke req.data, padanan middleware express.json yang mengurai badan JSON di Express.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Repositori produk dari latihan pertama dibuat dengan lima produk ber-id 1 sampai 5. Lalu, berurutan: tambah dua produk, hapus produk id 6, hapus produk id 2, lalu tambah satu produk lagi. Berapa id produk yang terakhir ditambahkan?

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi