Membuat REST API dengan Node.js, Express, dan PostgreSQL

Belajar membangun REST API production-ready dari nol menggunakan Node.js, Express, dan PostgreSQL lengkap dengan validasi dan error handling.
Membuat REST API dengan Node.js, Express, dan PostgreSQL

Persiapan Awal

Install dependensi yang dibutuhkan:

mkdir api-demo && cd api-demo
npm init -y
npm install express pg dotenv express-validator
npm install -D nodemon

Struktur Folder

api-demo/
├── src/
│   ├── config/db.js
│   ├── controllers/userController.js
│   ├── routes/userRoutes.js
│   └── middleware/errorHandler.js
├── .env
└── index.js

Konfigurasi Database

Isi file src/config/db.js:

const { Pool } = require("pg");
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
module.exports = pool;

Controller

const db = require("../config/db");

const getUsers = async (req, res, next) => {
  try {
    const { rows } = await db.query("SELECT id, name, email FROM users ORDER BY created_at DESC");
    res.json({ data: rows });
  } catch (err) {
    next(err);
  }
};

module.exports = { getUsers };

Error Handler Middleware

const errorHandler = (err, req, res, next) => {
  console.error(err.stack);
  res.status(err.status || 500).json({ error: err.message || "Internal Server Error" });
};
module.exports = errorHandler;

Entry Point

require("dotenv").config();
const express = require("express");
const userRoutes = require("./src/routes/userRoutes");
const errorHandler = require("./src/middleware/errorHandler");

const app = express();
app.use(express.json());
app.use("/api/users", userRoutes);
app.use(errorHandler);

app.listen(3000, () => console.log("Server running on port 3000"));

Testing dengan curl

curl http://localhost:3000/api/users

Langkah Selanjutnya

Setelah API dasar berjalan, tambahkan autentikasi JWT, rate limiting dengan express-rate-limit, dan dokumentasi Swagger untuk API yang siap production.

Butuh Solusi Digital Custom?

Kami siap membuatkan solusi digital sesuai kebutuhan bisnis Anda.

Konsultasi Gratis