Files
FACULTATE-LICENTA/UC/frontend/app.js
T

56 lines
1.7 KiB
JavaScript

const express = require('express');
const bodyParser = require('body-parser');
const loginRouter = require('./routers/login');
const menuRouter = require('./routers/mainMenu');
const path = require('path');
const cookieParser = require('cookie-parser');
const checkSession = require('./middlewares/checkSession');
process.on('SIGINT', shutdown);
process.on('SIGTERM', shutdown);
function shutdown() {
console.log('Received kill signal, shutting down gracefully.');
const serverProcess = app.get('serverProcess');
if (serverProcess && typeof serverProcess.kill === 'function') {
console.log('Shutting down server process...');
serverProcess.kill(); // Send SIGTERM to server process
serverProcess.on('exit', () => {
console.log('Server process terminated.');
process.exit(0); // Exit main process cleanly
});
} else {
console.log('No server process or cannot be killed, exiting.');
process.exit(0); // Exit main process cleanly
}
}
const app = express()
app.set('serverProcess', null);
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public', 'html')));
app.use('/css', express.static(path.join(__dirname, 'public', 'css')));
app.use('/js', express.static(path.join(__dirname, 'public', 'js')));
app.use('/images', express.static(path.join(__dirname, 'public', 'images')));
app.use(checkSession);
// Mount login and menu routers
app.use('/login', loginRouter);
app.use('/', menuRouter);
// Start the server
const PORT = process.env.PORT || 80;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});