DEV Community

Mumtaz
Mumtaz

Posted on • Edited on

Bagaimana Proses Komunikasi Express.js dengan PostgreSQL?

Daftar Isi

  1. Pendahuluan
  2. Alur Komunikasi
  3. Ringkasan

Pendahuluan

Ketika membangun aplikasi backend, kombinasi Express.js dan PostgreSQL sering menjadi pilihan utama karena performanya yang solid dan skalabilitas yang baik. Tetapi di balik tampilannya yang mulus, sebenarnya keduanya tak bisa berkomunikasi secara langsung. Untuk menjembatani komunikasi teknis ini, dibutuhkan perantara.

Bagaimana proses komunikasi antara Express dan PostgreSQL terjadi? Siapa yang menjadi penghubung di antara keduanya? Mari kita kupas bersama.

Express bisa diibaratkan frontliner di sebuah kantor layanan. Dia yang bertugas menghadapi pelanggan, alias user yang datang membawa berbagai request, seperti:

  • Ambil data (GET)
  • Tambah data (POST)
  • Ubah data (PUT/PATCH)
  • Hapus data (DELETE)

Alur Komunikasi

Express merupakan framework yang berbasis JavaScript yang berjalan di lingkungan Node.js. Karena itu, semua logika dan interaksi dengan database harus ditulis dalam JavaScript. Masalahnya, PostgreSQL bekerja dengan SQL, di mana Express tidak dapat memahami hal tersebut. Di sinilah package pg atau node-postgres menjadi jembatan komunikasi di antara keduanya dengan alur:

1) User -> Express
User mengirim request ke Express, misalnya:

"Ambilkan seluruh daftar produk"

User-Express

2) Express -> pg
Express menerima request user, lalu menjalankan handler (controller) yang di dalamnya terdapat kode JavaScript. Kode inilah yang menggunakan package pg untuk membangun dan mengirim query ke PostgreSQL, misalnya:

SELECT * FROM products;
Enter fullscreen mode Exit fullscreen mode

Express-pg

3) pg -> PostgreSQL
pg mengirim query yang dikirim oleh Express tersebut ke PostgreSQL dalam bahasa SQL. Selain itu, pg juga akan menangani aspek teknis koneksi database seperti connection pooling dan sanitasi input untuk mencegah serangan SQL injection.

pg-PostgreSQL

4) PostgreSQL memproses query
PostgreSQL membaca instruksi dari pg berupa: "ambil semua data dari tabel products", kemudian menyiapkan hasilnya.

5) PostgreSQL -> pg
PostgreSQL mengembalikan hasil dalam format data biner yang terstruktur. pg yang akan menguraikan data biner tersebut.

PostgreSQL-pg

6) pg -> Express
pg mengubah data biner hasil dari PostgreSQL menjadi tipe data JavaScript yang familiar, misalnya array of objects, sehingga mudah diolah oleh Express. Contoh hasil:

[
    { "id": 1, "name": "Kopi" },
    { "id": 2, "name": "Teh" }
]
Enter fullscreen mode Exit fullscreen mode

pg-Express

7) Express -> User
Express menerima data dari pg kemudian menyusun respons dari data tersebut, misalnya dalam format JSON agar mudah dibaca oleh user. Respons dikirim ke user melalui protokol HTTP, seperti:

{
  "products": [
    { "id": 1, "name": "Kopi" },
    { "id": 2, "name": "Teh" }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Express-User

Ringkasan

Singkatnya, Express bertindak sebagai resepsionis yang menerima dan menanggapi permintaan user. Karena tidak bisa berkomunikasi langsung dengan database, Express memerlukan bantuan pg sebagai jembatan komunikasi dengan PostgreSQL. pg memproses query dari Express menjadi SQL query yang bisa dipahami oleh PostgreSQL. Setelah PostgreSQL mengeksekusi permintaannya, PostgreSQL mengembalikan ke pg yang kemudian disampaikan pada Express. Setelah itu, Express mengirimkannya pada user sebagai respons.

Keseluruhan Proses

Perlu diingat bahwa pg hanya salah satu dari banyaknya library yang bisa menjadi jembatan antara Express dengan PostgreSQL. Pemilihan library sebaiknya disesuaikan dengan kebutuhan. pg sendiri termasuk library yang sudah matang (stabil), banyak digunakan oleh developer, dan memiliki komunitas yang besar sehingga lebih mudah untuk menemukan bantuan atau contoh penggunaannya.

Top comments (0)