Spaces:
Runtime error
Runtime error
File size: 1,953 Bytes
8c7b7ca f529da2 8c7b7ca | 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | const path = require('path');
const express = require('express');
const cors = require('cors');
const helmet = require('helmet');
const { connectDb } = require('./config/db');
const env = require('./config/env');
const authRoutes = require('./routes/authRoutes');
const vendorRoutes = require('./routes/vendorRoutes');
const employeeRoutes = require('./routes/employeeRoutes');
const hrRoutes = require('./routes/hrRoutes');
const safetyRoutes = require('./routes/safetyRoutes');
const dashboardRoutes = require('./routes/dashboardRoutes');
const gateRoutes = require('./routes/gateRoutes');
const managementRoutes = require('./routes/managementRoutes');
const errorHandler = require('./middleware/errorHandler');
const { startExpiryJob } = require('./jobs/expiryJob');
const { ensureSeedUsers } = require('./config/seed');
const app = express();
app.use(helmet());
app.use(cors({ origin: env.frontendUrl }));
app.use(express.json({ limit: '2mb' }));
app.use(express.urlencoded({ extended: true }));
app.use(
'/uploads',
(_req, res, next) => {
res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
next();
},
express.static(path.join(__dirname, '..', 'uploads'))
);
app.get('/health', (_req, res) => {
res.json({ status: 'ok', timestamp: new Date().toISOString() });
});
app.use('/api/auth', authRoutes);
app.use('/api/vendors', vendorRoutes);
app.use('/api/employees', employeeRoutes);
app.use('/api/hr', hrRoutes);
app.use('/api/safety', safetyRoutes);
app.use('/api/dashboard', dashboardRoutes);
app.use('/api/manage', managementRoutes);
app.use('/', gateRoutes);
app.use(errorHandler);
async function boot() {
try {
await connectDb();
await ensureSeedUsers();
app.listen(env.PORT, '0.0.0.0', () => {
console.log(`Backend listening on port ${env.port}`);
startExpiryJob();
});
} catch (error) {
console.error('Failed to start backend', error);
process.exit(1);
}
}
boot();
|