42 lines
946 B
JavaScript
42 lines
946 B
JavaScript
const express = require('express');
|
|
const { Pool } = require('pg');
|
|
const cors = require('cors');
|
|
require('dotenv').config();
|
|
|
|
const app = express();
|
|
const port = 3000;
|
|
|
|
// Middleware
|
|
app.use(cors()); // ← penting untuk akses dari frontend container
|
|
app.use(express.json());
|
|
|
|
// PostgreSQL connection
|
|
const pool = new Pool({
|
|
host: process.env.PGHOST || 'db',
|
|
user: process.env.PGUSER || 'postgres',
|
|
password: process.env.PGPASSWORD || 'postgres',
|
|
database: process.env.PGDATABASE || 'mydb',
|
|
port: process.env.PGPORT || 5432,
|
|
});
|
|
|
|
module.exports = pool;
|
|
|
|
// Routes
|
|
app.get('/', (req, res) => {
|
|
res.send('API is running!');
|
|
});
|
|
|
|
app.get('/users', async (req, res) => {
|
|
try {
|
|
const result = await pool.query('SELECT * FROM users');
|
|
res.json(result.rows);
|
|
} catch (err) {
|
|
res.status(500).json({ error: err.message });
|
|
}
|
|
});
|
|
|
|
// Start server
|
|
app.listen(port, () => {
|
|
console.log(`API listening on port ${port}`);
|
|
});
|