From dcb3f2dd1382986639b722778fad113392533b28 Mon Sep 17 00:00:00 2001 From: Blake Matthes Date: Fri, 10 Apr 2026 21:32:25 -0500 Subject: [PATCH] refactor(server): added in serverCrash email --- backend/server.ts | 18 +++++++++++++ backend/utils/mailViews/serverCrash.hbs | 35 +++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 backend/utils/mailViews/serverCrash.hbs diff --git a/backend/server.ts b/backend/server.ts index 31e29ee..c210229 100644 --- a/backend/server.ts +++ b/backend/server.ts @@ -15,6 +15,7 @@ import { monitorAlplaPurchase } from "./purchase/purchase.controller.js"; import { setupSocketIORoutes } from "./socket.io/serverSetup.js"; import { baseSettingValidationCheck } from "./system/settingsBase.controller.js"; import { createCronJob } from "./utils/croner.utils.js"; +import { sendEmail } from "./utils/sendEmail.utils.js"; const port = Number(process.env.PORT) || 3000; export let systemSettings: Setting[] = []; @@ -62,6 +63,23 @@ const start = async () => { startNotifications(); }, 5 * 1000); + process.on("uncaughtException", async (err) => { + console.error("Uncaught Exception:", err); + //await closePool(); + const emailData = { + email: "blake.matthes@alpla.com", // should be moved to the db so it can be reused. + subject: `${os.hostname()} has just encountered a crash.`, + template: "serverCrash", + context: { + error: err, + plant: `${os.hostname()}`, + }, + }; + + await sendEmail(emailData); + //process.exit(1); + }); + server.listen(port, async () => { log.info( `Listening on http://${os.hostname()}:${port}${baseUrl}, logging in ${process.env.LOG_LEVEL}, current ENV ${process.env.NODE_ENV ? process.env.NODE_ENV : "development"}`, diff --git a/backend/utils/mailViews/serverCrash.hbs b/backend/utils/mailViews/serverCrash.hbs new file mode 100644 index 0000000..4b47f51 --- /dev/null +++ b/backend/utils/mailViews/serverCrash.hbs @@ -0,0 +1,35 @@ + + + + + {{!--Order Summary --}} + {{> styles}} + + {{!-- --}} + + +

{{plant}},
Has encountered an unexpected error.

+

+ Please see below the stack error from the crash. +

+
+
+

Error Message:

+

{{error.message}}

+
+
+
+

Stack trace

+
{{{error.stack}}}
+
+ + \ No newline at end of file