- P2606: Plan v1.1 EN EJECUCIÓN. Fases 1-3 completadas. - Ficha nodo srvv-nginx-rm.md. P2606 en adn/07_proyectos.md. - Incluye cambios acumulados de sesiones anteriores.
46 lines
1.4 KiB
JavaScript
46 lines
1.4 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/ambitos', require('./routes/ambitos')(pool));
|
|
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));
|
|
app.use('/api/gestion', require('./routes/gestion')(pool));
|
|
app.use('/api/resumen', require('./routes/resumen')(pool));
|
|
app.use('/api/docs', require('./routes/docs')());
|
|
|
|
// 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}`);
|
|
});
|