fix middleware again

This commit is contained in:
2025-09-12 13:54:56 +02:00
parent 066c2b4705
commit 923c17840d
2 changed files with 8 additions and 16 deletions

View File

@@ -11,10 +11,7 @@ export class ApiError extends Error {
} }
const router = Router(); const router = Router();
const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(err => { const asyncHandler = fn => (req, res, next) => Promise.resolve(fn(req, res, next)).catch(next);
res.error = err;
next();
});
const userSchema = Joi.object({ const userSchema = Joi.object({
username: Joi.string().min(3).max(32).required() username: Joi.string().min(3).max(32).required()

View File

@@ -47,19 +47,14 @@ app.use(express.static(path.join(__dirname, "public"), {
app.use("/api/docs", swaggerUi.serve, swaggerUi.setup(specs)); app.use("/api/docs", swaggerUi.serve, swaggerUi.setup(specs));
app.use("/api", apiRouter); app.use("/api", apiRouter);
app.use((_req, res, next) => { app.use((err, req, res, next) => {
if (res.error == null) {
return res.status(404).send("Not Found");
} else {
const err = res.error;
if (err instanceof ApiError) { if (err instanceof ApiError) {
return res.status(err.status).json({ status: "error", error: err.message }); return res.status(err.status).json({ status: "error", error: err.message });
} }
console.error(err); console.error(err);
res.status(500).json({ status: "error", error: "Internal server error" }); res.status(500).json({ status: "error", error: "Internal server error" });
} });
})
const server = https.createServer({ const server = https.createServer({
key: fs.readFileSync('server.key'), key: fs.readFileSync('server.key'),