From 3696ebbcf496f1dfc9a4e5aaa726cfe41be992ed Mon Sep 17 00:00:00 2001 From: jeffvli Date: Thu, 19 May 2022 01:49:19 -0700 Subject: [PATCH] Add readable validation error --- src/server/middleware/error-handler.ts | 6 +++++- src/server/middleware/validateRequest.ts | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/server/middleware/error-handler.ts b/src/server/middleware/error-handler.ts index f79bd90..d301b08 100644 --- a/src/server/middleware/error-handler.ts +++ b/src/server/middleware/error-handler.ts @@ -1,5 +1,7 @@ import { NextFunction, Request, Response } from 'express'; +import { isJsonString } from '../utils'; + const errorHandler = ( err: any, req: Request, @@ -10,7 +12,9 @@ const errorHandler = ( statusCode: err.statusCode || 500, response: 'Error', error: { - message: JSON.parse(err.message) || err.message, + message: isJsonString(err.message) + ? JSON.parse(err.message) + : err.message, path: req.path, }, }); diff --git a/src/server/middleware/validateRequest.ts b/src/server/middleware/validateRequest.ts index f21e70c..604c252 100644 --- a/src/server/middleware/validateRequest.ts +++ b/src/server/middleware/validateRequest.ts @@ -42,7 +42,15 @@ export const validateRequest: ( } if (errors.length > 0) { - throw ApiError.badRequest(JSON.stringify(errors)); + throw ApiError.badRequest( + JSON.stringify( + [ + `[${errors[0].type}]`, + `[${errors[0].errors.issues[0].path[0]}]`, + errors[0].errors.issues[0].message, + ].join(' ') + ) + ); } return next(); };