From 923c17840d0d5587056098b336d06912364d2f5d Mon Sep 17 00:00:00 2001 From: RHM Date: Fri, 12 Sep 2025 13:54:56 +0200 Subject: [PATCH] fix middleware again --- backend/src/api.js | 5 +---- backend/src/index.js | 19 +++++++------------ 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/backend/src/api.js b/backend/src/api.js index 0daa28b..b6b4bb3 100644 --- a/backend/src/api.js +++ b/backend/src/api.js @@ -11,10 +11,7 @@ export class ApiError extends Error { } const router = Router(); -const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(err => { - res.error = err; - next(); -}); +const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next); const userSchema = Joi.object({ username: Joi.string().min(3).max(32).required() diff --git a/backend/src/index.js b/backend/src/index.js index 8af2980..f1c2ca7 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -47,19 +47,14 @@ app.use(express.static(path.join(__dirname, "public"), { app.use("/api/docs", swaggerUi.serve, swaggerUi.setup(specs)); app.use("/api", apiRouter); -app.use((_req, res, next) => { - if (res.error == null) { - return res.status(404).send("Not Found"); - } else { - const err = res.error; - if (err instanceof ApiError) { - return res.status(err.status).json({ status: "error", error: err.message }); - } - - console.error(err); - res.status(500).json({ status: "error", error: "Internal server error" }); +app.use((err, req, res, next) => { + if (err instanceof ApiError) { + return res.status(err.status).json({ status: "error", error: err.message }); } -}) + + console.error(err); + res.status(500).json({ status: "error", error: "Internal server error" }); +}); const server = https.createServer({ key: fs.readFileSync('server.key'),