42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
const express = require('express');
|
|
const cors = require('cors');
|
|
const helmet = require('helmet');
|
|
const { Pool } = require('pg');
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3001;
|
|
|
|
// Middleware
|
|
app.use(helmet());
|
|
app.use(cors({ origin: process.env.CORS_ORIGIN || '*' }));
|
|
app.use(express.json());
|
|
|
|
// Database pool
|
|
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
|
|
|
|
// Health check
|
|
app.get('/health', async (req, res) => {
|
|
try {
|
|
await pool.query('SELECT 1');
|
|
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|
} catch (err) {
|
|
res.status(500).json({ status: 'error', message: err.message });
|
|
}
|
|
});
|
|
|
|
// Routes
|
|
app.use('/api/nodos', require('./routes/nodos')(pool));
|
|
app.use('/api/bitacoras', require('./routes/bitacoras')(pool));
|
|
app.use('/api/entradas', require('./routes/entradas')(pool));
|
|
app.use('/api/proyectos', require('./routes/proyectos')(pool));
|
|
|
|
// Error handler
|
|
app.use((err, req, res, next) => {
|
|
console.error('Error:', err.message);
|
|
res.status(500).json({ error: err.message });
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`🔐 dtic-BITACORAs API corriendo en puerto ${PORT}`);
|
|
});
|