| 17 | |
| 18 | // eslint-disable-next-line no-unused-vars |
| 19 | const errorHandler = (err, req, res, next) => { |
| 20 | let { statusCode, message } = err; |
| 21 | if (config.env === 'production' && !err.isOperational) { |
| 22 | statusCode = httpStatus.INTERNAL_SERVER_ERROR; |
| 23 | message = httpStatus[httpStatus.INTERNAL_SERVER_ERROR]; |
| 24 | } |
| 25 | |
| 26 | res.locals.errorMessage = err.message; |
| 27 | |
| 28 | const response = { |
| 29 | code: statusCode, |
| 30 | message, |
| 31 | ...(config.env === 'development' && { stack: err.stack }), |
| 32 | }; |
| 33 | |
| 34 | if (config.env === 'development') { |
| 35 | logger.error(err); |
| 36 | } |
| 37 | |
| 38 | res.status(statusCode).send(response); |
| 39 | }; |
| 40 | |
| 41 | module.exports = { |
| 42 | errorConverter, |