diff --git a/backend/handlers/error.js b/backend/handlers/error.js index 0a3e1b4d0..22b527182 100644 --- a/backend/handlers/error.js +++ b/backend/handlers/error.js @@ -1,7 +1,8 @@ const uuid = require("uuid"); +const { mongoDB } = require("../init/mongodb"); class MonkeyError { - constructor(status, message, stack = null) { + constructor(status, message, stack = null, uid) { this.status = status ?? 500; this.errorID = uuid.v4(); if (this.status === 500) { @@ -19,7 +20,18 @@ class MonkeyError { : message : message; } - console.log(`ErrorID: ${this.errorID} logged...`); + console.log("Error", message, stack); + if (process.env.MODE !== "dev" && this.status === 500) { + mongoDB() + .collection("errors") + .insertOne({ + _id: this.errorID, + timestamp: Date.now(), + uid, + message, + stack, + }); + } } } diff --git a/backend/server.js b/backend/server.js index 337a9bfc1..5b2a055f8 100644 --- a/backend/server.js +++ b/backend/server.js @@ -28,8 +28,8 @@ const presetRouter = require("./api/routes/preset"); app.use("/presets", presetRouter); app.use(function (e, req, res, next) { - console.log("Error", e); - let monkeyError = new MonkeyError(e.status, e.message, e.stack); + const { uid } = req.decodedToken; + let monkeyError = new MonkeyError(e.status, e.message, e.stack, uid); return res.status(e.status || 500).json(monkeyError); });