From dee77c459a929d7e0041fae38176b71248a9ff9c Mon Sep 17 00:00:00 2001 From: BoHong Li Date: Wed, 12 Apr 2017 05:30:04 +0800 Subject: refactor(app.js): Extract middleware to module extract check URi is valid, redirect without trailing slashes --- lib/web/middleware/checkURiValid.js | 14 ++++++++++++++ lib/web/middleware/redirectWithoutTrailingSlashes.js | 17 +++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lib/web/middleware/checkURiValid.js create mode 100644 lib/web/middleware/redirectWithoutTrailingSlashes.js (limited to 'lib/web/middleware') diff --git a/lib/web/middleware/checkURiValid.js b/lib/web/middleware/checkURiValid.js new file mode 100644 index 00000000..88065e79 --- /dev/null +++ b/lib/web/middleware/checkURiValid.js @@ -0,0 +1,14 @@ +'use strict' + +const logger = require('../../logger') +const response = require('../../response') + +module.exports = function (req, res, next) { + try { + decodeURIComponent(req.path) + } catch (err) { + logger.error(err) + return response.errorBadRequest(res) + } + next() +} diff --git a/lib/web/middleware/redirectWithoutTrailingSlashes.js b/lib/web/middleware/redirectWithoutTrailingSlashes.js new file mode 100644 index 00000000..fbaba617 --- /dev/null +++ b/lib/web/middleware/redirectWithoutTrailingSlashes.js @@ -0,0 +1,17 @@ +'use strict' + +const config = require('../../config') + +module.exports = function (req, res, next) { + if (req.method === 'GET' && req.path.substr(-1) === '/' && req.path.length > 1) { + const queryString = req.url.slice(req.path.length) + const urlPath = req.path.slice(0, -1) + let serverURL = config.serverurl + if (config.urlpath) { + serverURL = serverURL.slice(0, -(config.urlpath.length + 1)) + } + res.redirect(301, serverURL + urlPath + queryString) + } else { + next() + } +} -- cgit v1.2.3 From 7ef17fd4e61503178875dd34f998203264ffb691 Mon Sep 17 00:00:00 2001 From: BoHong Li Date: Wed, 12 Apr 2017 06:05:43 +0800 Subject: refactor(app.js): Extract tooBusy --- lib/web/middleware/tooBusy.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/web/middleware/tooBusy.js (limited to 'lib/web/middleware') diff --git a/lib/web/middleware/tooBusy.js b/lib/web/middleware/tooBusy.js new file mode 100644 index 00000000..f1b72330 --- /dev/null +++ b/lib/web/middleware/tooBusy.js @@ -0,0 +1,13 @@ +'use strict' + +const toobusy = require('toobusy-js') + +const response = require('../../response') + +module.exports = function (req, res, next) { + if (toobusy()) { + response.errorServiceUnavailable(res) + } else { + next() + } +} -- cgit v1.2.3 From 0ef0e705794689b79767a1bd5de0385dfb084143 Mon Sep 17 00:00:00 2001 From: Max Wu Date: Mon, 8 May 2017 00:35:44 +0800 Subject: Rename checkURiValid.js to checkURIValid.js --- lib/web/middleware/checkURIValid.js | 14 ++++++++++++++ lib/web/middleware/checkURiValid.js | 14 -------------- 2 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 lib/web/middleware/checkURIValid.js delete mode 100644 lib/web/middleware/checkURiValid.js (limited to 'lib/web/middleware') diff --git a/lib/web/middleware/checkURIValid.js b/lib/web/middleware/checkURIValid.js new file mode 100644 index 00000000..88065e79 --- /dev/null +++ b/lib/web/middleware/checkURIValid.js @@ -0,0 +1,14 @@ +'use strict' + +const logger = require('../../logger') +const response = require('../../response') + +module.exports = function (req, res, next) { + try { + decodeURIComponent(req.path) + } catch (err) { + logger.error(err) + return response.errorBadRequest(res) + } + next() +} diff --git a/lib/web/middleware/checkURiValid.js b/lib/web/middleware/checkURiValid.js deleted file mode 100644 index 88065e79..00000000 --- a/lib/web/middleware/checkURiValid.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' - -const logger = require('../../logger') -const response = require('../../response') - -module.exports = function (req, res, next) { - try { - decodeURIComponent(req.path) - } catch (err) { - logger.error(err) - return response.errorBadRequest(res) - } - next() -} -- cgit v1.2.3