From d7c4168452c0ea2ff59ad43d2110ff27ddb03eee Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Mon, 29 Nov 2021 16:02:38 +0000 Subject: [PATCH] Removed HTMLErrorRenderer completely refs: https://github.com/TryGhost/Ghost/commit/0799f02e8034283e1097e01c1ebec32b74bdc4a1 refs: https://github.com/TryGhost/Ghost/commit/5e931e2e3722b80d8de68fc4262f1486c7a10e3c - with the referenced two commits I replaced our old HTML renderer with some code borrowed heavily from finalHandler - I had intended to modify this further to out put our message, context and help error messages - However, I ended up doing this in prepareError so it's done for all error renderers - There's now very little point keeping duplicated code from finalHandler just to output the status code - If we remove this code, express will fall back to finalHandler anyway, so the output is near identical --- .../web/shared/middleware/error-handler.js | 36 ++----------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/core/server/web/shared/middleware/error-handler.js b/core/server/web/shared/middleware/error-handler.js index bad94b0f4f..520608f997 100644 --- a/core/server/web/shared/middleware/error-handler.js +++ b/core/server/web/shared/middleware/error-handler.js @@ -256,34 +256,6 @@ const themeErrorRenderer = (err, req, res, next) => { }); }; -/** - * Borrowed heavily from finalHandler - */ - -const DOUBLE_SPACE_REGEXP = /\x20{2}/g; -const NEWLINE_REGEXP = /\n/g; - -function createHtmlDocument(status, message) { - let body = escapeExpression(message) - .replace(NEWLINE_REGEXP, '
') - .replace(DOUBLE_SPACE_REGEXP, '  '); - - return `\n - \n - \n - \n - ${status} Error\n - \n - \n -
${status} ${body}
\n - \n - \n`; -} - -const htmlErrorRenderer = (err, req, res, next) => { // eslint-disable-line no-unused-vars - return res.send(createHtmlDocument(res.statusCode, err.stack)); -}; - module.exports.resourceNotFound = (req, res, next) => { next(new errors.NotFoundError({message: tpl(messages.resourceNotFound)})); }; @@ -314,9 +286,7 @@ module.exports.handleHTMLResponse = [ // Make sure the error can be served prepareError, // Handle the error in Sentry - sentry.errorHandler, - // Render the error using HTML format - htmlErrorRenderer + sentry.errorHandler ]; module.exports.handleThemeResponse = [ @@ -325,7 +295,5 @@ module.exports.handleThemeResponse = [ // Handle the error in Sentry sentry.errorHandler, // Render the error using theme template - themeErrorRenderer, - // Fall back to basic if HTML is not explicitly accepted - htmlErrorRenderer + themeErrorRenderer ];