Spaces:
Sleeping
Sleeping
File size: 997 Bytes
cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 ba475c6 cd601a6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | const express = require('express');
const config = require('./config.json');
const { requestLogger } = require('./middleware/logger');
const { rateLimiter } = require('./middleware/rateLimit');
const app = express();
app.use(express.json());
app.use(requestLogger);
app.use(rateLimiter);
// Health check
app.get('/health', (req, res) => {
res.json({ status: 'ok', uptime: process.uptime(), version: config.version });
});
// Mount routes
const usersRouter = require('./routes/users');
const dataRouter = require('./routes/data');
const statusRouter = require('./routes/status');
app.use('/api/users', usersRouter);
app.use('/api/data', dataRouter);
app.use('/api/status', statusRouter);
// Error handling middleware
app.use((err, req, res, next) => {
console.error(`[ERROR] ${err.message}`);
res.status(500).json({ error: 'Internal server error' });
});
// Start server
const PORT = config.port;
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server running on port ${PORT}`);
});
|