Skip to content

Commit dee77c4

Browse files
committed
refactor(app.js): Extract middleware to module
extract check URi is valid, redirect without trailing slashes
1 parent 7ba0d60 commit dee77c4

3 files changed

Lines changed: 33 additions & 20 deletions

File tree

app.js

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -192,28 +192,10 @@ passport.deserializeUser(function (id, done) {
192192
})
193193

194194
// check uri is valid before going further
195-
app.use(function (req, res, next) {
196-
try {
197-
decodeURIComponent(req.path)
198-
} catch (err) {
199-
logger.error(err)
200-
return response.errorBadRequest(res)
201-
}
202-
next()
203-
})
195+
app.use(require('./lib/web/middleware/checkURiValid'))
204196

205197
// redirect url without trailing slashes
206-
app.use(function (req, res, next) {
207-
if (req.method === 'GET' && req.path.substr(-1) === '/' && req.path.length > 1) {
208-
var query = req.url.slice(req.path.length)
209-
var urlpath = req.path.slice(0, -1)
210-
var serverurl = config.serverurl
211-
if (config.urlpath) serverurl = serverurl.slice(0, -(config.urlpath.length + 1))
212-
res.redirect(301, serverurl + urlpath + query)
213-
} else {
214-
next()
215-
}
216-
})
198+
app.use(require('./lib/web/middleware/redirectwithoutTrailingSlashes'))
217199

218200
// routes need sessions
219201
// template files
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict'
2+
3+
const logger = require('../../logger')
4+
const response = require('../../response')
5+
6+
module.exports = function (req, res, next) {
7+
try {
8+
decodeURIComponent(req.path)
9+
} catch (err) {
10+
logger.error(err)
11+
return response.errorBadRequest(res)
12+
}
13+
next()
14+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
'use strict'
2+
3+
const config = require('../../config')
4+
5+
module.exports = function (req, res, next) {
6+
if (req.method === 'GET' && req.path.substr(-1) === '/' && req.path.length > 1) {
7+
const queryString = req.url.slice(req.path.length)
8+
const urlPath = req.path.slice(0, -1)
9+
let serverURL = config.serverurl
10+
if (config.urlpath) {
11+
serverURL = serverURL.slice(0, -(config.urlpath.length + 1))
12+
}
13+
res.redirect(301, serverURL + urlPath + queryString)
14+
} else {
15+
next()
16+
}
17+
}

0 commit comments

Comments
 (0)