74 lines
1.9 KiB
JavaScript
74 lines
1.9 KiB
JavaScript
const { constants } = require("./constants");
|
|
const errorHandler = (err, req, res, next) => {
|
|
const statusCode = res.statusCode ? res.statusCode : 500;
|
|
|
|
switch (statusCode) {
|
|
case constants.VALIDATION_ERROR:
|
|
res.status(statusCode).json({
|
|
title: "Validation Failed ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.Method_Not_Allowed:
|
|
res.status(statusCode).json({
|
|
title: "Method Not Allowed ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.NOT_FOUND:
|
|
res.status(statusCode).json({
|
|
title: "Not found ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.FORBIDOEN:
|
|
res.status(statusCode).json({
|
|
title: "Forbidoen ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.SERVER_ERROR:
|
|
res.status(statusCode).json({
|
|
title: "Server Error ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.UNAUTHORIZED:
|
|
res.status(statusCode).json({
|
|
title: "Unauthorized ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.SITE_UNAUTHORIZED:
|
|
res.status(statusCode).json({
|
|
title: "Site Unauthorized ",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
case constants.TOO_MANY:
|
|
res.status(statusCode).json({
|
|
title: "Too many request",
|
|
msg: err.message,
|
|
stackTrace: err.stack,
|
|
});
|
|
break;
|
|
default:
|
|
console.log(err);
|
|
res.status(500).json({
|
|
title: "Unhandled error",
|
|
msg: err.message,
|
|
stackTrace: err.stack
|
|
});
|
|
break;
|
|
}
|
|
};
|
|
|
|
module.exports = { name: "errorHandler", run: errorHandler };
|