summary refs log tree commit diff
path: root/api/src
diff options
context:
space:
mode:
Diffstat (limited to 'api/src')
-rw-r--r--api/src/Server.ts5
-rw-r--r--api/src/middlewares/ErrorHandler.ts6
2 files changed, 8 insertions, 3 deletions
diff --git a/api/src/Server.ts b/api/src/Server.ts

index ef72df5f..40e7c1c2 100644 --- a/api/src/Server.ts +++ b/api/src/Server.ts
@@ -5,7 +5,7 @@ import { Authentication, CORS } from "./middlewares/"; import { Config, db, initEvent } from "@fosscord/util"; import { ErrorHandler } from "./middlewares/ErrorHandler"; import { BodyParser } from "./middlewares/BodyParser"; -import { Router, Request, Response } from "express"; +import { Router, Request, Response, NextFunction } from "express"; import mongoose from "mongoose"; import path from "path"; import { initRateLimits } from "./middlewares/RateLimit"; @@ -69,7 +69,8 @@ export class FosscordServer extends Server { this.routes = await this.registerRoutes(path.join(__dirname, "routes", "/")); - api.use("*", (req: Request, res: Response, next) => { + api.use("*", (error: any, req: Request, res: Response, next: NextFunction) => { + if (error) return next(error); res.status(404).json({ message: "404: Not Found", code: 0 diff --git a/api/src/middlewares/ErrorHandler.ts b/api/src/middlewares/ErrorHandler.ts
index 04d56026..d080e498 100644 --- a/api/src/middlewares/ErrorHandler.ts +++ b/api/src/middlewares/ErrorHandler.ts
@@ -3,6 +3,8 @@ import { HTTPError } from "lambert-server"; import { FieldError } from "../util/instanceOf"; export function ErrorHandler(error: Error, req: Request, res: Response, next: NextFunction) { + if (!error) next(); + try { let code = 400; let httpcode = code; @@ -24,9 +26,11 @@ export function ErrorHandler(error: Error, req: Request, res: Response, next: Ne if (httpcode > 511) httpcode = 400; + console.error(`[Error] ${code} ${req.url} ${message}`, errors || error); + res.status(httpcode).json({ code: code, message, errors }); } catch (error) { - console.error(error); + console.error(`[Internal Server Error] 500`, error); return res.status(500).json({ code: 500, message: "Internal Server Error" }); } }