UNPKG

express-nemo-error-response

Version:

A middleware for express to add error response

33 lines (28 loc) 864 B
const defaults = { errorMessageTemplate: (err, req) => `'Unhandled error' type: ${err.name} '${req.url}'` } module.exports = opt => { const options = { ...defaults, ...opt } if ( !options.errorMessageTemplate || typeof options.errorMessageTemplate !== 'function' ) { throw new Error('[Options] Missing errorMessageTemplate function') } const middleware = (err, req, res, next) => { const errorResponse = options.errorMessageTemplate(err, req, res) if (!res.headersSent) { if (res.statusCode <= 399) { res.status(500) } res.send(errorResponse) } else if (req.context && req.context.logger) { req.context.logger.error('Message already sent, see next log for more info') req.context.logger.error(errorResponse) } next() } middleware.options = options return middleware }