express-api-cli
Version:
Cli tool for generating an express project. Instead of wasting extra time creating your project structure, start building right away
69 lines (63 loc) • 1.59 kB
JavaScript
import HttpStatus from 'http-status-codes';
import logger from '../config/logger';
/**
* Error response middleware for 404 not found.
*
* @param {Object} req
* @param {Object} res
*/
export function notFound(req, res) {
res.status(HttpStatus.NOT_FOUND).json({
code: HttpStatus.NOT_FOUND,
message: 'Ooops, route not found'
});
}
/**
* Error response middleware for handling all app errors except generic errors.
*
* @param {Object} err
* @param {Object} req
* @param {Object} res
* @param {Function} next
*/
// eslint-disable-next-line no-unused-vars
export function appErrorHandler(err, req, res, next) {
if (err.code && typeof err.code === 'number') {
logger.error(`
status - ${err.code}
message - ${err.message}
url - ${req.originalUrl}
method - ${req.method}
IP - ${req.ip}
`);
res.status(err.code).json({
code: err.code,
message: err.message
});
} else {
next(err);
}
}
/**
* Generic error response middleware for internal server errors.
*
* @param {Object} err
* @param {Object} req
* @param {Object} res
* @param {Function} next
*/
// eslint-disable-next-line no-unused-vars
export function genericErrorHandler(err, req, res, next) {
logger.error(`
status - ${HttpStatus.INTERNAL_SERVER_ERROR}
message - ${err.stack}
url - ${req.originalUrl}
method - ${req.method}
IP - ${req.ip}
`);
res.status(HttpStatus.INTERNAL_SERVER_ERROR).json({
code: HttpStatus.INTERNAL_SERVER_ERROR,
data: '',
message: err.message
});
}