From 868ebab6a16b96ef53cd4da4edeca9f392b74452 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 19 Feb 2023 13:09:51 +0100 Subject: [PATCH 1/3] Created the error.js middleware --- server/middlewares/error.js | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 server/middlewares/error.js diff --git a/server/middlewares/error.js b/server/middlewares/error.js new file mode 100644 index 00000000..4e6ad600 --- /dev/null +++ b/server/middlewares/error.js @@ -0,0 +1,5 @@ +module.exports = (err, req, res, next) => { + if (!(err instanceof SyntaxError)) return next(); + + res.status(400).json({message: "You need to provide a valid JSON body"}); +} \ No newline at end of file From e6d579549c5d0d4cd7f509675b34ed6c63d1d7bf Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 19 Feb 2023 13:10:06 +0100 Subject: [PATCH 2/3] Implemented the error.js middleware in the index.js --- server/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/server/index.js b/server/index.js index f002758f..3c37ff80 100755 --- a/server/index.js +++ b/server/index.js @@ -14,6 +14,7 @@ process.on('uncaughtException', err => require('./config/errorHandler')(err)); // Register middlewares app.use(express.json()); +app.use(require('./middlewares/error')); // Register routes app.use("/api/config", require('./routes/config')); From 08be0f5ffbe687f68bbb60158f93abd32dd8524a Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sun, 19 Feb 2023 13:10:27 +0100 Subject: [PATCH 3/3] Fixed a critical bug in the config.js route --- server/routes/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/routes/config.js b/server/routes/config.js index 1aa15caa..4395e9b6 100644 --- a/server/routes/config.js +++ b/server/routes/config.js @@ -19,7 +19,7 @@ app.get("/", password(true), async (req, res) => { // Updates a specific config entry app.patch("/:key", password(false), async (req, res) => { - if (!req.body.value.toString()) return res.status(400).json({message: "You need to provide the new value"}); + if (!req.body.value?.toString()) return res.status(400).json({message: "You need to provide the new value"}); if ((req.params.key === "ping" || req.params.key === "download" || req.params.key === "upload") && isNaN(req.body.value)) return res.status(400).json({message: "You need to provide a number in order to change this"});