diff options
Diffstat (limited to 'backend/src/middleware/error.middleware.js')
-rw-r--r-- | backend/src/middleware/error.middleware.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/backend/src/middleware/error.middleware.js b/backend/src/middleware/error.middleware.js new file mode 100644 index 0000000..e037cff --- /dev/null +++ b/backend/src/middleware/error.middleware.js @@ -0,0 +1,40 @@ +const env = require('../config/env'); + +/** + * Not found error handler middleware + * @param {Object} req - Express request object + * @param {Object} res - Express response object + * @param {Function} next - Express next function + */ +const notFound = (req, res, next) => { + const error = new Error(`Not Found - ${req.originalUrl}`); + res.status(404); + next(error); +}; + +/** + * General error handler middleware + * @param {Error} err - Error object + * @param {Object} req - Express request object + * @param {Object} res - Express response object + * @param {Function} next - Express next function + */ +const errorHandler = (err, req, res, next) => { + // Log the error + console.error(err.stack); + + // Set status code + const statusCode = res.statusCode === 200 ? 500 : res.statusCode; + + // Send response + res.status(statusCode).json({ + message: err.message, + stack: env.NODE_ENV === 'production' ? '🥞' : err.stack, + error: env.NODE_ENV === 'development' ? err : {} + }); +}; + +module.exports = { + notFound, + errorHandler +};
\ No newline at end of file |