diff --git a/src/middleware/error.ts b/src/middleware/error.ts index 2eaf6e8..8db272e 100644 --- a/src/middleware/error.ts +++ b/src/middleware/error.ts @@ -17,8 +17,11 @@ export function notFound(req: Request, res: Response, next: NextFunction) { next(error); } -export function handler(err: Error, req: Request, res: Response, next: NextFunction) { - const statusCode = res.statusCode !== 200 ? res.statusCode : 500; +export function handler(err: HttpError, req: Request, res: Response, next: NextFunction) { + let statusCode = res.statusCode; + if (statusCode == 200) { + statusCode = err.statusCode || err.status || 500 + } res.status(statusCode); let message; diff --git a/types.d.ts b/types.d.ts index 8931ce5..0be93e3 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1,6 +1,11 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ +interface HttpError extends Error { + status?: number; + statusCode?: number; +} + namespace RateLimit { interface obj { [key: string]: {