
Menyambungkan Otak dan Gudang Memori
Di artikel Part 2, kita sudah membuat Route GET dan POST di Express, tapi datanya masih abal-abal (Hardcoded). Di artikel ini, kita akan mengganti data abal-abal tersebut dengan fungsi tembakan nyata ke PostgreSQL menggunakan bantuan Prisma Client.
Buka kembali file index.js milikmu, dan tambahkan baris koneksi Prisma di bagian paling atas.
const express = require('express');
const { PrismaClient } = require('@prisma/client');
const app = express();
const prisma = new PrismaClient(); // Inisialisasi Prisma
app.use(express.json()); // Wajib untuk menerima JSON Body1. READ (Mengambil Semua User dari Database)
Ubah fungsi app.get kamu. Karena proses *database* memakan waktu jaringan (bisa sedetik), kita WAJIB menggunakan async / await.
app.get('/api/users', async (req, res) => {
try {
// Ambil semua data dari Tabel User
const semuaUser = await prisma.user.findMany();
res.status(200).json(semuaUser);
} catch (error) {
res.status(500).json({ pesan: "Terjadi error di server!" });
}
});2. CREATE (Memasukkan User Baru)
Saat Frontend mengirim data nama, email, dan password, kita menaruhnya ke database pakai prisma.user.create().
app.post('/api/users', async (req, res) => {
try {
const { nama, email, password } = req.body;
const userBaru = await prisma.user.create({
data: {
nama: nama,
email: email,
password: password
}
});
res.status(201).json({ pesan: "User sukses dibuat!", data: userBaru });
} catch (error) {
res.status(400).json({ pesan: "Gagal. Mungkin email sudah terdaftar?" });
}
});3. DELETE (Menghapus User Berdasarkan ID)
Kita menangkap angka ID dari URL (req.params.id), lalu memusnahkannya. Ingat, parameter URL berbentuk String (Teks), jadi kita harus mengubahnya jadi Angka (parseInt) sebelum dilempar ke Prisma.
app.delete('/api/users/:id', async (req, res) => {
try {
const targetId = parseInt(req.params.id);
await prisma.user.delete({
where: { id: targetId }
});
res.json({ pesan: "User berhasil dihapus!" });
} catch (error) {
res.status(404).json({ pesan: "User tidak ditemukan!" });
}
});Aplikasi Sudah Hidup!
Kini, jika kamu memanggil POST lewat Postman untuk mendaftarkan Budi, lalu mematikan Server Node.js (Ctrl+C) dan menyalakannya lagi, data Budi tidak akan hilang. API-mu kini memiliki ingatan permanen berkat PostgreSQL!
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates