54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const {json} = require("body-parser");
|
|
const cors = require('cors');
|
|
|
|
const app = express();
|
|
const port = process.env.PORT || 5000;
|
|
|
|
app.use(cors({
|
|
allowedHeaders: ['Authorization', 'Content-Type'] // Add 'Authorization' to the list of allowed headers
|
|
}));
|
|
app.use(json());
|
|
|
|
const {
|
|
usersDB,
|
|
departmentsDB,
|
|
backupSchemesDB,
|
|
ceoDB,
|
|
adminDB
|
|
} = require('./db/jsonDatabaseManager');
|
|
|
|
app.set('usersDB', usersDB);
|
|
app.set('departmentsDB', departmentsDB);
|
|
app.set('backupSchemesDB', backupSchemesDB);
|
|
app.set('ceoDB', ceoDB);
|
|
app.set('adminDB', adminDB);
|
|
|
|
const checkJson = require('./middlewares/checkJson');
|
|
const apiKeyValidation = require('./middlewares/apiKeyValidation');
|
|
|
|
app.use(apiKeyValidation)
|
|
app.use(checkJson)
|
|
|
|
const usersRouter = require('./routes/users');
|
|
const adminRouter = require('./routes/admin');
|
|
const ceoRouter = require('./routes/ceo');
|
|
const backupSchemesRouter = require('./routes/backup_schemes');
|
|
|
|
app.use('/users', usersRouter);
|
|
app.use('/admin', adminRouter);
|
|
app.use('/ceo', ceoRouter);
|
|
app.use('/backup_schemes', backupSchemesRouter);
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Server running on http://localhost:${port}`);
|
|
});
|
|
|
|
// Graceful shutdown function
|
|
function gracefulShutdown() {
|
|
console.log('\nShutting down!');
|
|
process.exit(0);
|
|
}
|
|
|
|
process.on('SIGTERM', gracefulShutdown);
|
|
process.on('SIGINT', gracefulShutdown); |