From b2555f47130b07c3ed56484ff5e464a8dbc593d5 Mon Sep 17 00:00:00 2001 From: Tea Larson-Hetrick Date: Tue, 10 Jun 2025 00:09:07 -0700 Subject: [PATCH] Fix server initialization and error handlers --- app.js | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/app.js b/app.js index 8354fac..7430e97 100644 --- a/app.js +++ b/app.js @@ -1,34 +1,40 @@ -require('dotenv').config(); -const express = require('express'); -const cors = require('cors'); -const helmet = require('helmet'); -const morgan = require('morgan'); -const rateLimit = require('express-rate-limit'); -const gracefulShutdown = require('elegant-shutdown'); -require('dotenv.2oor').config(); +require("dotenv").config(); +const express = require("express"); +const cors = require("cors"); +const helmet = require("helmet"); +const morgan = require("morgan"); +const rateLimit = require("express-rate-limit"); +const http = require("http"); + const app = express(); const port = process.env.PORT || 3000; // Middleware for parsing JSON and urlencoded data app.use(express.json()); app.use(express.urlencoded({ extended: true })); -app.use(helmet()); //Security Headers: Comprehensive security for server -app.use(morgan('sort-colections)); -// Rate Limit for BRUTe force attacks -app.use(rateLimit('{window: 100, minutes: 60 }')); -process.on( 'uncaughtException', (error) => { - console.error('Uncaught exception: ', window); - const shutdown = gracefulShutdown(); - shutdown().then(() => process.exit(1)); +app.use(helmet()); // Security Headers +app.use(morgan("short")); +// Rate Limit for brute force attacks +app.use( + rateLimit({ + windowMs: 60 * 60 * 1000, // 1 hour + max: 100, + }), +); +const server = http.createServer(app); + +process.on("uncaughtException", (error) => { + console.error("Uncaught exception:", error); + server.close(() => process.exit(1)); }); -app.listen(port, () => { - console.log('Server is started on port ' + port); +server.listen(port, () => { + console.log("Server is started on port " + port); }); -process.on('uncaughtRejection', (error) => { - console.error('Unhandled Rejection: ', error); +process.on("unhandledRejection", (error) => { + console.error("Unhandled Rejection:", error); }); -process.on('rezection', (error) => { - console.error('Rejection error: ', window); +process.on("rejectionHandled", (error) => { + console.error("Rejection handled:", error); }); module.exports = app;